1. ホーム
  2. memory

[解決済み] ステートで配列に値を追加する最良の方法は何ですか?

2023-05-13 23:20:28

質問

stateに配列があり、仮にthis.state.arrとします。 私はこのstateプロパティに何かを追加し、さらにいくつかのプロパティを変更したい。

オプション1

onChange(event){
    this.state.arr.push('newvalue');
    ...
    this.setState({some:'val',arr:this.state.arr})
}

オプション2

onChange(event){
    var newArr = this.state.arr;
    ...
    newArr.push('newvalue');
    ...
    this.setState({some:'val',arr:newArr})
}

this.stateがimmutableとして扱われることは知っています。しかし、私はまだそれから状態を設定するオプション1のようにそれを使用することは大丈夫ですか、私はオプション2のようなものに行く必要があり、したがって、常に最初にメモリにコピーを作成すること

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

concatを使った簡単な方法です。

this.setState({
  arr: this.state.arr.concat('new value')
})