子コンポーネントの値を親コンポーネントが取得する方法は何ですか?
Reactでは、親コンポーネントはpropsを使って値を子コンポーネントに渡し、コールバック関数を通じて子コンポーネントから値を取得することができます。
日本語では、次のように言い換えることができます:以下は例です。
親コンポーネント:
import React, { useState } from 'react';
import ChildComponent from './ChildComponent';
function ParentComponent() {
const [childValue, setChildValue] = useState('');
const handleChildValueChange = (value) => {
setChildValue(value);
};
return (
<div>
<ChildComponent onValueChange={handleChildValueChange} />
<p>子组件的值:{childValue}</p>
</div>
);
}
export default ParentComponent;
サブコンポーネント:
import React, { useState } from 'react';
function ChildComponent({ onValueChange }) {
const [value, setValue] = useState('');
const handleChange = (event) => {
const newValue = event.target.value;
setValue(newValue);
onValueChange(newValue);
};
return (
<input type="text" value={value} onChange={handleChange} />
);
}
export default ChildComponent;
親コンポーネントでは、useStateフックを使って子コンポーネントの値を格納する状態変数childValueを作成します。
その後、子の値が変化したときに呼び出され、新しい値をchildValue変数に更新するコールバック関数handleChildValueChangeを定義します。
親コンポーネントで、useStateフックを使用して、値を入力フィールドに格納するための状態変数valueを作成します。
その後、handleChange関数を定義して、その関数は入力ボックスの値が変更された時に呼び出され、新しい値がvalue変数に更新される。
同時に、親コンポーネントから受け取ったonValueChangeコールバック関数を呼び出し、新しい値を親コンポーネントに渡す。
父コンポーネントでは、handleChildValueChange関数を子コンポーネントのonValueChangeプロパティに渡すことで、子コンポーネントの値を取得する機能が実現されました。
子コンポーネントの入力フィールドの値が変更された際に、親コンポーネントは自動的に更新されて最新の値が表示されます。