[解決済み] React Hook : 子コンポーネントから親コンポーネントへのデータ送信
2023-03-07 12:16:50
質問
子コンポーネントから親コンポーネントへデータを渡すための最も簡単な解決策を探しています。
Contextの使用、プロパティの通過、またはプロップの更新について聞いたことがありますが、どれが最良の解決策なのかわかりません。
私は、複数行を選択できるテーブルを持つ子コンポーネントを含むPageComponentで、管理インターフェイスを構築しています。子コンポーネントで選択した行数を親のPageComponentに送信したいのです。
というようなものです。
PageComponentです。
<div className="App">
<EnhancedTable />
<h2>count 0</h2>
(count should be updated from child)
</div>
子コンポーネント:
const EnhancedTable = () => {
const [count, setCount] = useState(0);
return (
<button onClick={() => setCount(count + 1)}>
Click me {count}
</button>
)
};
結構簡単なことだと思うので、そのためにreduxを使うのは嫌ですね。
どのように解決するのですか?
親コンポーネントでメソッドを作成し、子コンポーネントに渡して、子コンポーネントの状態が変化するたびにpropsから呼び出すことで、子コンポーネントに状態を保持させることができます。
const EnhancedTable = ({ parentCallback }) => {
const [count, setCount] = useState(0);
return (
<button onClick={() => {
const newValue = count + 1;
setCount(newValue);
parentCallback(newValue);
}}>
Click me {count}
</button>
)
};
class PageComponent extends React.Component {
callback = (count) => {
// do something with value in parent component, like save to state
}
render() {
return (
<div className="App">
<EnhancedTable parentCallback={this.callback} />
<h2>count 0</h2>
(count should be updated from child)
</div>
)
}
}
関連
-
[解決済み] reactでonloadを使うには?
-
[解決済み] ReactjsのEsLintの "react / jsx-props-no-spreading "エラーを無効化する。
-
[解決済み] Webpack のコンパイルに失敗した
-
[解決済み] React TypeScriptで作業しているときに、Jestが予期しないトークンに遭遇した
-
[解決済み] プロップ `history` は `Router` で必須とマークされているが、その値は `undefined` である。
-
[解決済み] setStateを呼び出さずにReactコンポーネントを強制的に再レンダリングすることは可能ですか?
-
[解決済み] 親メソッドから子メソッドを呼び出す
-
[解決済み] Reactコンポーネント外でのクリックを検出する
-
[解決済み] useEffect React Hook使用時の依存性欠如の警告を修正する方法
-
[解決済み] ReactJSで子コンポーネントから親コンポーネントにデータを渡すには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React - 式は1つの親要素を持つ必要がありますか?
-
[解決済み】Reactコンポーネント内でswitchステートメントを使用するには?
-
[解決済み】Reactでclsxを使用する方法
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] jest: テストスイートの実行に失敗しました。予期しないトークンのインポート
-
[解決済み] React + TypeScript のエラーです。この呼び出しにマッチするオーバーロードがありません
-
[解決済み] reactstrapのドロップダウンで選択されたアイテムを設定する方法は?
-
[解決済み] React Hooksの「exhaustive-deps」lintルールを理解する
-
[解決済み] React QueryとReduxの主な違いは何ですか?