Ich habe die Anfänge einer anklickbaren List-Komponente, die dazu dienen wird, ein Select-Element zu steuern. Wie Sie aus der unten onClick
des ListItem
sehen können, bin ich vorbei, den Zustand eines Kindes Element (ListItem
in diesem Fall) zu den Eltern (SelectableList
und CustomSelect
Komponente). Das funktioniert gut. Allerdings möchte ich auch den Zustand der Geschwister Komponenten (die anderen ListItems) ändern, so dass ich ihre ausgewählten Zustände umschalten kann, wenn eines der ListItems geklickt wird.Wie kann ich den Zustand von Geschwisterkomponenten in React einfach einstellen?
Im Moment verwende ich einfach document.querySelectorAll('ul.cs-select li)
, um die Elemente zu greifen und die Klasse zu selektieren, wenn sie nicht mit dem Index der angeklickten ListItem
übereinstimmt. Das funktioniert - in gewissem Maße. Nach ein paar Klicks wurde der Status der Komponente jedoch nicht von React aktualisiert (nur von JS auf der Clientseite), und die Dinge beginnen zu brechen. Ich möchte die this.state.isSelected
der Geschwisterlistenelemente ändern und diesen Status verwenden, um die SelectableList-Komponente zu aktualisieren. Kann jemand eine bessere Alternative zu dem anbieten, was ich unten geschrieben habe?
Danke Colin. Sieht so aus, als könnte ich das schaffen. Braucht nur ein wenig Logik in '' onChildToggle() '' ', um es exklusiv auszuwählen, anstatt eine Mehrfachauswahloption. –
Und wenn es eine einzige Auswahl ist, speichern Sie einfach einen einzelnen Wert, der das ausgewählte Element angibt. Dies ist normalerweise der Index des ausgewählten Datenelements oder dessen ID. Sie können dann 'selected = {this.state.selected === index}' oder 'selected = {this.state.selected === dataItem.id}' auswählen – FakeRainBrigand