web-dev-qa-db-fra.com

Qu'est-ce que prevState dans ReactJS?

Je pense que ce pourrait être une question stupide à poser, mais croyez-moi, je suis débutant pour réagir. Quelqu'un pourrait-il m'expliquer pourquoi nous utilisons prevState dans ReactjS. J'ai essayé de comprendre, mais j'ai échoué.

Voici mon code. Aidez-moi à comprendre

 state = {
    placeName : '',
    places : []
}



placeSubmitHanlder = () => {
    if(this.state.placeName.trim()===''){
      return;
    }
    this.setState(prevState => {
      return {
        places : prevState.places.concat(prevState.placeName)
      };
    });
  };
15
user11037643

Voici une démo avec un code commenté pour vous donner plus d'informations: http://codepen.io/PiotrBerebecki/pen/rrGWjm

constructor() {
  super();
  this.state = {
    value: 0
  }
}

React docs: https://facebook.github.io/react/docs/reusable-components.html#es6-classes

L'API [classe React ES6] est similaire à React.createClass à l'exception de getInitialState. Au lieu de fournir une méthode getInitialState distincte, vous configurez votre propre propriété d'état dans le constructeur.

D'où vient prevState?

Le prevState provient de l'api setState: https://facebook.github.io/react/docs/component-api.html#setstate

Il est également possible de passer une fonction avec la fonction de signature (état, accessoires). Cela peut être utile dans certains cas lorsque vous souhaitez mettre en file d'attente une mise à jour atomique qui consulte la valeur précédente de state + props avant de définir des valeurs. Par exemple, supposons que nous voulions incrémenter une valeur dans l'état:

this.setState(function(previousState, currentProps) {
  return {
     value: previousState.value + 1
  };
});
0
Hardik Virani