掲題の通りです。
以下のように、componentのstateに、buttonsというstateに連想配列形式のデータを入れることを想定します。
この時、例えばthis.state.buttons["現在地"]
のcan_click
を、あるアクションを受けた場合false
に変えるなどのfunctionを入れた場合、それが起きたら<RadioCircleButtons buttons={buttons} />
の更新は
- 差分(
this.state.buttons["現在地"].can_click
のみの更新) - すべて('this.state.buttons'を全て更新)
のどちらでしょうか?
import React from 'react'; import RadioCircleButtons from '../utils/RadioCircleButtons'; class DrillButtons extends React.Component { constructor(props) { super(props); this.state = { is_shown: '', buttons: { "現在地": { name: "現在地", can_click: true, is_selected: false }, "駅名": { name: "駅名", can_click: true, is_selected: false } }, }; } render() { const buttons = this.state.buttons return ( <div> <RadioCircleButtons buttons={buttons} /> </div> ); } } export default DrillButtons;
よろしくお願いします。
==== 追記 ====
本質問と少し話がズレますが、
ネストしたcomponentを書き換えるには、全てを複製する必要がある??
this.setState({ buttons: { "現在地": { name: "現在地", can_click: false, is_selected: false }, "駅名": { name: "駅名", can_click: true, is_selected: false } }, }; });
https://teratail.com/questions/116344
=== さらに追記 ===
https://stackoverflow.com/questions/43040721/how-to-update-a-nested-state-in-react
ネストしたstateの書き換えについては理解しました。
依然として、ネストしたstateの更新が差分なのかはわかっていないので、ご教授いただきたいです。
追記が多くわかりづらくなってしまいましたが、よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。