Wie lösche ich die Staaten oder leeres array auf klicken Sie auf in reagieren 0.14 ES6?
Ich bin rendering in einem array modal. Einmal das modal schließt muss ich leeren array.Der folgende code aktualisiert das array aber nicht klar array auf klicken Sie auf der closeModal.
constructor(props,context) {
super(props,context);
this.state = {
myArray: []
};
}
pushData(newVar) {
this.setState((state) => {
myArray: state.myArray.push(newVar)
});
}
closeModal() {
this.setState({
myArray: []
})
}
So etwas wie dieses.Zustand.myarray=[]
Hey Sorry du hast Recht @Antonio.Zustand.myarray=[] Feste mein problem.
Push-Daten scheint komisch... ich schreiben würde.Zustand.myArray.push(newVar)
diese.Zustand.myArray.push(newVar) diese Weise zu drücken hat nicht funktioniert für mich. Ich habe es versucht .concat auch, aber hat nicht funktioniert
Hey Sorry du hast Recht @Antonio.Zustand.myarray=[] Feste mein problem.
Push-Daten scheint komisch... ich schreiben würde.Zustand.myArray.push(newVar)
diese.Zustand.myArray.push(newVar) diese Weise zu drücken hat nicht funktioniert für mich. Ich habe es versucht .concat auch, aber hat nicht funktioniert
state.myArray.push(newVar)
wird nicht so verhält wie erwartet. Array.prototype.push
gibt die Länge des neuen Arrays, nicht das array mit dem neuen Wert. setState(state => ({myArray: state.myArray.concat(newVar)}))
ist näher an, was Sie suchen.InformationsquelleAutor Harsha Kakumanu | 2016-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich fand das problem ist, mein closeModal nicht genannt, überhaupt auf die Schließung von modal. Tue ich das, um closeModal auf componentWillUnmount Funktion.
Ich habe verstanden, dass der folgende code bewirkt, dass problem.
Ich es geändert zurück zu
this.state
außerhalb des Konstruktors. Das könnte fix Ihre unmittelbare problem, aber es wird verursachen bugs.Ja, verwenden Sie
this.setState({ myArray: [] });
statt.InformationsquelleAutor Harsha Kakumanu
Ein paar Lösungen mit Erläuterungen zu dieser (wenn auch in ES5) kann hier gefunden werden:
https://stackoverflow.com/a/29994490/4572987
Also die pushData Methode fügt ordnungsgemäß newVar in den Staat und führt zu einer re-Rendern, richtig? warum nicht machen, diese Methoden in uniform und closeModal Aussehen: dies.setState((Zustand) => { myArray: [] });
Wenn das nicht funktioniert, ich vermute, es hat etwas zu tun mit der code-änderung des aktuellen Referenz Reagieren, muss die variable myArray, und als ein Ergebnis nicht beeinflussen, es überhaupt nicht..
InformationsquelleAutor dskoda1