Ich habe eine Liste von Optionen mit Kontrollkästchen und einer Schaltfläche "done" in einem Elternteil ListView
. Wenn die Schaltfläche Fertig gedrückt wird, möchte ich wissen, welche der Kontrollkästchen aktiviert sind.
Ich sollte hinzufügen, dass ich versucht habe, ein Array der aktivierten Kästchen in der ListView
mit Callback-Funktionen von ChildCheckBox
zu pflegen. Es funktionierte gut, außer wenn zurück zum ListView
navigiert wurde, wurde das Array zurückgesetzt, während die Kontrollkästchen immer noch aktiviert schienen. Ich würde es vorziehen, wenn die Funktion onDonePress()
nur abfragt, welche Kästchen überprüft werden, und dann zu diesem Zeitpunkt entsprechend reagieren, statt sich auf das ListView
zu verlassen, das ein Array verwaltet.
Hier ist die ListView
:
Und hier ist die ChildCheckBoxCell
-Komponente:
Und schließlich, hier ist die ChildDoneCell
-Komponente
Vielen Dank im Voraus!
Folgendes sollten Sie tun. Ich habe Kommentare in den Code eingegeben, um sie zu erklären. Es sollte 6 Schritte geben.
%Vor% Sie werden feststellen, dass Sie die cell
-Daten in der renderRow
-Funktion binden können, aber dies ist nicht bevorzugt. Als Faustregel gilt, dass Sie Ihre Callback-Funktion aus Performancegründen so weit wie möglich zur Dereferenzierung Ihrer Child-Daten bringen möchten und dass es aus Wartungsgründen besser ist, explizit zu sein. Dies ist die Abkürzung Alternative:
BEARBEITEN
Ich habe den Code aktualisiert, um mehr Sinn zu machen und unnötige Instanzmethoden loszuwerden. Ich schlage vor, dass Sie das state
in Ihrem ChildCheckBoxCell
loswerden und versuchen, es über props
als Teil Ihres cell
-Objekts in meinem ersten Beispiel zu füttern.
Tags und Links listview react-native state components parent-child