0
votes

Réagir: pourquoi nous avons un rappel dans setState?

Pourquoi avons-nous un rappel dans setState ?

Je suis nouveau pour réagir et j'essaie de comprendre mais je ne suis pas capable de comprendre pleinement.


0 commentaires

3 Réponses :


1
votes
increasePrice = () => {
    this.setState({
        price: this.state.price + 1
    },()=>{
   this.props.getPriceData(this.state.price)
})}

0 commentaires

0
votes

setState est de nature asynchrone. Si vous souhaitez utiliser l'état mis à jour juste après l'avoir défini, le rappel d'état est utilisé.

Exemple-

setState(
  { name: "ABC" },
  () => console.log(this.state)
);
// => { name: "ABC" }

Lisez ceci SO pour savoir quand l'utiliser.


0 commentaires

1
votes

Comme mentionné dans le doc: https://reactjs.org/docs/react-component.html#setstate

setState () ne met pas toujours immédiatement à jour le composant. Il peut regrouper ou reporter la mise à jour à plus tard. Cela fait de la lecture de this.state juste après avoir appelé setState () un piège potentiel. À la place, utilisez componentDidUpdate ou un callback setState (setState (updater, callback)), dont l'un ou l'autre est garanti de se déclencher après l'application de la mise à jour. Si vous devez définir l'état en fonction de l'état précédent, lisez l'argument du programme de mise à jour ci-dessous.

Vous ne devez jamais modifier l'objet d'état directement, mais utiliser à la place la fonction de mise à jour fournie par setState():

// Bad
this.state.counter = this.state.counter + this.props.step;

// Good
this.setState((state, props) => {
  return {
    counter: state.counter + props.step
  };
});

p >


0 commentaires