1. ホーム
  2. javascript

[解決済み] Reactの状態を変異させるにはどうしたらよいですか?

2023-01-15 05:19:11

質問

例えば、プレーンなオブジェクトのリストが this.state.list にプレーンなオブジェクトのリストがあり、それを使って子供のリストをレンダリングすることができるとします。にオブジェクトを挿入する正しい方法は何でしょうか? this.state.list ?

を変異させることができないので、私が考える唯一の方法は以下のとおりです。 this.state を直接変異させることができないためです。

this._list.push(newObject):
this.setState({list: this._list});

これは私には醜いように思えます。もっと良い方法はないのでしょうか?

どのように解決するのですか?

concat は新しい配列を返すので、次のようにすることができます。

this.setState({list: this.state.list.concat([newObject])});

もう一つの選択肢は、Reactの 不変性ヘルパー

  var newState = React.addons.update(this.state, {
      list : {
        $push : [newObject]
      }
  });

  this.setState(newState);