So weiß ich, dass staatliche Einstellung in Reaktion asynchron ist und alle und wir setzen Zustand wie folgt aus:Wie storniere ich einen `this.setState`?
this.setState(previousState => {
return { /* some new state that uses `previousState` */ }
});
Also meine Frage ist: Wie kann ich eine this.setState
stornieren? Nehmen wir an, ich verwende previousState
, um festzustellen, dass ich kein Update rendern muss. Wie kann ich die setState
abbrechen und sagen, dass React nichts rendern soll.
this.setState(previousState => {
if (/* previousState is fine */) {
// tell react not to do anything
} else {
return { /* some new state */ }
}
});
Wie würden Sie feststellen, dass Sie ein weiteres Update nicht brauchen? Meinst du, wenn sich der Staat nicht verändert hat? – Chris
Warum sollte 'this.setState()' an erster Stelle aufgerufen werden? Klingt wie alles, was Sie tun müssen, ist 'this.state', dann * not * call' this.setState() ' –
shouldComponentUpdate lifecycle ist, was Sie brauchen. Mögliches Duplikat von https://stackoverflow.com/questions/44521391/reactjs-stop-rerendering-on-a-particular-state-change-with-shouldcomponentupdat/44522755#44522755 –