Ich habe einen Anbieter, der eine Liste der Elemente zurückgibt, die ich rendern muss. Jedes Element in dieser Liste muss außerdem über eine Schaltfläche verfügen, die basierend auf dem ausgewählten Element eine Aktion ausführt. Ich bin Rendering diese Ansicht wie folgt:So erhalten Sie den Index von for-loop gerendert React Components
render(){
<div name="enclosing div">
{this._renderList()}
</div>
}
_renderList(){
var result = [];
var i = 0;
for (i; i < this.mylist.length; ++i) {
result.push(<p> {this.myList[i]} </p>);
result.push(<Button onClick={() => this.clicked(params) } />);
}
return result;
}
In meinem Click-Handler, die ich benötige die Informationen, die in den < p> -Tags war. Ich dachte, dass dieser Ansatz funktionieren würde:
<Button onClick ={() => this.clicked(i)} />
Aber wenn ich das tue, i immer = mylist.length zum Zeitpunkt des Klickens.
Also das nächste, dachte ich an eine Schlüsseleigenschaft meine Taste halten, die in etwa so:
<Button index={i} onClick = {...} />
Aber ich merkte, ich habe keine Ahnung, wie ich zu onClick aus dem Index zu übergeben. Wie kann ich das machen?
Bin ich diese Liste-Rendering falsch, um mit zu beginnen?
Schlüssel ist eine ganz besondere Eigenschaft in react, wie sie es für verwenden, wenn Sie versuchen, eine Reihe von Komponenten anzuzeigen und ich bin mir nicht sicher, ob du mit Requisiten darauf zugreifen kannst oder ob du einen Umweg machen musst. Ich würde wahrscheinlich etwas anderes wie 'index' verwenden und einfach nach' this.props.index' im Kind fragen. –