web-dev-qa-db-ja.com

ReactJSのprevStateとは何ですか?

質問するのはばかげた質問かもしれませんが、reactJSの初心者であると信じてください。 ReactjSでprevStateを使用する理由を誰かが説明してくれませんか。私は一生懸命理解しようとしましたが失敗しました。

これが私のコードです。理解するのを手伝ってください

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



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

詳細を示すコメントアウトされたコードを含むデモは次のとおりです。 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

[React ES6クラス] APIは、getInitialStateを除いてReact.createClassに似ています。別個のgetInitialStateメソッドを提供する代わりに、コンストラクターで独自の状態プロパティを設定します。

PrevStateはどこから来たのですか?

PrevStateはsetState apiから取得されます: https://facebook.github.io/react/docs/component-api.html#setstate

シグネチャfunction(state、props)で関数を渡すこともできます。これは、値を設定する前に、state + propsの以前の値を調べるアトミック更新をエンキューする場合に役立ちます。たとえば、stateの値をインクリメントしたいとします。

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