setState を使用して state の state.item[1] を更新します
この状況では、オブジェクト内のオブジェクトを更新しようとしていますsetState を使用して状態を設定します。状態を正しく更新するには、状態オブジェクト全体のコピーを作成し、そのコピーを変更して、更新されたコピーに状態を設定する必要があります。
次の方法で、state.item[1] を更新できます。 setState:
<code class="javascript">// 1. Make a shallow copy of the items let items = [...this.state.items]; // 2. Make a shallow copy of the item you want to mutate let item = {...items[1]}; // 3. Replace the property you're interested in item.name = 'newName'; // 4. Put it back into our array. N.B. we *are* mutating the array here, // but that's why we made a copy first items[1] = item; // 5. Set the state to our new copy this.setState({items});</code>
必要に応じてステップ 2 と 3 を組み合わせることができます:
<code class="javascript">let item = { ...items[1], name: 'newName' }</code>
または全体を実行することもできます1 行の内容:
<code class="javascript">this.setState(({items}) => ({ items: [ ...items.slice(0,1), { ...items[1], name: 'newName', }, ...items.slice(2) ] }));</code>
注: これらの例では、項目は配列であると仮定しました。項目がオブジェクトの場合は、オブジェクトのプロパティに対して同様の更新を行います。
setState を使用するときは、誤って変更しないように、変更する前に常に前の状態のコピーを作成する必要があることに注意してください。元の状態オブジェクト。
以上が「setState」を使用して状態のネストされたオブジェクトを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。