Ich benutze react-native-sortable-Listview, um die Reihenfolge der Liste-Element durch Drag & Drop ändern. Nur das Ziehen-Objekt wird erneut gerendert, so dass seine Position aktualisiert wird, aber andere haben ihre vorherige Position. Wenn diese Komponente durch eine andere Ursache wie eine Inkrement-Schaltfläche neu gerendert wird, sind alle Positionen korrekt. Also meine Frage ist, wenn meine react-native-sortable-list gerendert wird, wie kann ich das nochmal rendern. Beide Möglichkeiten zum Rendern von forceUpdate()
und this.setState()
, konnte ich nicht folgen, wie ich Zustand in Render-Funktion nicht aktualisieren kann. Was kann ein möglicher Weg sein, dies zu tun.Update Reagieren Komponente nach Rendern
Antwort
Versuchen componentWillMount oder componentDidMount mit:
componentWillMount =() => {
this.setState({
data: myData
});
}
Im Grunde gleich in welcher Phase Ihrer Komponente gerendert Sie müssen dieses Ereignis erfassen und rufen setState(); Sie können das Rendering auch über eine Schaltfläche durchführen. Der Benutzer klickt auf eine Schaltfläche. Anschließend setzen Sie setState(); Hoffe das hilft!
Dies funktioniert nicht, da/dictMount() nur einmal vor/nach dem ersten Rendering aufgerufen wird. – Simons0n
Ich kenne diese Liste nicht, aber es sollte eine Eigenschaft wie onDrop
oder etwas ähnliches sein. Sie können eine Funktion an diesen Event-Handler übergeben, der möglicherweise die Liste sortiert, die Sie übergeben.
ist es diese Liste?
https://www.npmjs.com/package/react-native-sortable-list
ich würde versuchen, was die onReleaseRow
Ereignishandler tut. Vielleicht so etwas wie:
<SortableList onReleaseRow{() => this.sortList() data={this.state.data}}/>
sortList() {
let sortedData = //sort data somehow
this.setState({
data: sortedData})
}
Sie könnten eine reRender
Funktion nach unten auf Ihre sortierbare Liste übergeben. ReactNativeList akzeptiert einen Prop namens onChangeOrder, der bei jeder Änderung der Zeilenreihenfolge aufgerufen wird.
class ParentComponent extends Component {
reRender =() => {
this.forceUpdate()
}
render() {
return <ReactNativeList onChangeOrder={this.reRender} />
}
}
Ok Ich habe einen Weg gefunden, um wie folgt zu rendern.
<SortableListView
key={this.state.count}
data={this.state.allObj}
order={this.state.order}
activeOpacity={0.5}
onRowMoved={e => {
this.setState({ count: this.state.count + 1 });
this.props.arrangedMilestoneList(e);
console.log('onRowMoved is called');
}}
onMoveEnd={() => console.log('onMoveEnd is fired')}
renderRow={(row, s1, i) => this.renderOneDraggableMilestone(row, s1, i)}
/>
Was ich tue, ist ich ein Schlüsselattribut zu SortableListView
hinzugefügt und aktualisieren Sie diese Schlüssel auf jedem onRowMoved
Aktion. Und deswegen verursacht es das Rendern.
- 1. Update Reagieren Komponente nach Schlüssel
- 2. reagieren Router rendern nicht Komponente
- 3. Reagieren Router neu rendern gleiche Komponente
- 4. Reagieren - Google Map-Komponente nicht Karte nach dem Rendern ändern
- 5. Reagieren Rendern
- 6. Reagieren Rendern unnötige Komponente in meiner App
- 7. Reagieren verschachtelte Route keine Komponente Rendern
- 8. Leistung: Reagieren Rendern einer Funktion vs Rendern einer Komponente
- 9. Vue-Komponente Ereignis nach Rendern
- 10. reagieren Update Komponente Requisiten außerhalb der Komponente Klasse
- 11. Render Reagieren Komponente automatisch nach Ajax Anruf
- 12. An Kind senden, welche Komponente Kind sollte rendern - Reagieren js
- 13. Redux-Update reagieren Komponente, wenn Store-Updates
- 14. Update-Komponente auf Zustandsaktualisierungs Reagieren js
- 15. Update-Komponente von einer anderen Komponente in reagieren
- 16. Reagieren JS Zustandsänderung neu rendern nicht die Komponente
- 17. Reagieren Rendern auf IE 11
- 18. Natives Rendern reagieren Problem
- 19. Reagieren - Rendern importierte .SVG-Datei
- 20. Reagieren Sie semantische UI-Komponente nicht ordnungsgemäß Rendern
- 21. finden Größe von reagieren Komponente oder Bild vor dem Rendern
- 22. Reagieren Komponente nicht neu rendern auf Zustand Aktualisierung
- 23. Reagieren Rendern mehrerer Moden in der gleichen Komponente
- 24. Reagieren Sie untergeordnete Komponente rendern nicht auf es Statusänderung
- 25. mit Interagieren und Rendern einer reagieren Komponente lokal
- 26. Reagieren: müssen Eltern aufrufen, um Komponente neu zu rendern
- 27. Komponente stürzt beim erneuten Rendern ab | Reagieren, Redux
- 28. Reagieren Sie mit componentWillReceiveProps, um die Komponente erneut zu rendern
- 29. Reagieren beim Rendern einer Komponente löst das Ereignis onClick aus?
- 30. Rendern Reagieren in Shadow Root
Hallo, teilen Sie einige Code. Ich denke, Sie sollten das mit einer Kombination von 'renderRow' und' onChangeOrder' erreichen können. –
Ich habe diese [Frage] (https://stackoverflow.com/questions/47608834/update-position-of-all-places-in-react-native-sortable-listview) mit Code geschrieben, aber niemand war so interessiert Ich muss es in zusammengefasster Form posten –
Ok, aber ich kann Ihnen nicht helfen, wenn es keinen Code gibt. Teilen Sie ein grundlegendes Beispiel mindestens –