Wie kann ich den Status der untergeordneten Checkbox-Komponenten in einer übergeordneten ListView-Komponente mit React-Native erhalten?

9

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 :

%Vor%

Und hier ist die ChildCheckBoxCell -Komponente:

%Vor%

Und schließlich, hier ist die ChildDoneCell -Komponente

%Vor%

Vielen Dank im Voraus!

    
Michael Campsall 16.05.2016, 01:32
quelle

1 Antwort

4

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:

%Vor%

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.

    
rclai 13.09.2016, 22:27
quelle