[解決済み] Reactで親の状態を更新するにはどうしたらいいですか?
2022-03-19 15:26:24
質問
私の構成は以下の通りです。
Component 1
- |- Component 2
- - |- Component 4
- - - |- Component 5
Component 3
Component 3 は、Component 5 の状態に応じて、何らかのデータを表示する必要があります。
propsはimmutableなので、単純にComponent 1にその状態を保存して転送することはできませんよね?そして、はい、私は リダックス しかし、私はそれを使いたくありません。reactだけで解決できるといいのですが。私が間違っているのでしょうか?
どのように解決するのですか?
子-親間の通信には、次のように親から子へ状態を設定する関数を渡す必要があります。
class Parent extends React.Component {
constructor(props) {
super(props)
this.handler = this.handler.bind(this)
}
handler() {
this.setState({
someVar: 'some value'
})
}
render() {
return <Child handler = {this.handler} />
}
}
class Child extends React.Component {
render() {
return <Button onClick = {this.props.handler}/ >
}
}
こうすることで、子はpropsで渡された関数の呼び出しで、親の状態を更新することができます。
しかし、私の理解では、コンポーネント5と3は関連していないので、コンポーネントの構造を再考する必要があります。
1つの可能な解決策は、コンポーネント1と3の状態を含む上位のコンポーネントでそれらをラップすることです。このコンポーネントは、プロップを通じて低レベルの状態を設定します。
関連
-
要素ツリー制御によるvueTreeテーブル
-
vueにおけるv-forループオブジェクトのプロパティ
-
vueが定義するプライベートフィルタと基本的な使い方
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
jsを使った簡単な照明スイッチのコード
-
vueのグローバルがscss(mixin)を導入。
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueの補間表現とv-textディレクティブの違いについて
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
jq は html ページとデータを動的に分割する。
-
[解決済み] なぜJSXプロップは矢印関数やバインドを使用してはいけないのですか?