erstellt So habe ich ein Array wie dieses const divs = ["Text 1","Text 2","Text 3"]
. Ich schaffe divs (ein kleines Menü) aus dieser Reihe in meiner Render-FunktionStyling Divs von Array onClick in React
var createThreeDivs = divs.map((category) => {
return <div key={category} onClick={this.handleClick} className="myDivClass">{category}</div>
});
Ich mag eine dieser divs, um Stil, wenn ich auf sie klicken, und das Styling auf dem Rest von ihnen entfernen. Also, wenn ich eine der divs wählen wird es eine Farbe und entfernt die Farbe auf dem Rest von ihnen
Im normalen Javascript ohne virtuellen DOM i wie dies tun könnte:
handleClick(e) {
//remove styling from others
var allDivs = document.getElementsByClassName("myDivClass");
for(var i = 0; i < allDivslength; i++) {
allDivs[i].classList.remove("myDivClass-styled");
}
//Add styling class to selected,
e.target.classList.add("myDivClass-styled");
}
Aber das DOM manipulieren direkt. Wie mache ich so etwas in React?
Ich habe Beispiele gesehen, wie dies mit einem Zustand mit nur einem Element und ohne ein Array, das die divs erstellt, gemacht werden kann. Aber ich kann keine gute Lösung für dieses Szenario finden. Irgendwelche Vorschläge?
Dank! Wenn ich auf das aktive div klicken und dann das Styling entfernen möchte, wie kann das gemacht werden? – Koiski