Wenn Sie in React möchten, dass eine übergeordnete Komponente den Wert einer untergeordneten Komponente verwendet, können Sie dies auf zwei Arten tun:
Leiten Sie Daten über Requisiten weiter
Untergeordnete Komponenten können ihre Werte über Requisiten an übergeordnete Komponenten weitergeben. Die übergeordnete Komponente kann eine Funktion definieren und diese Funktion dann über Requisiten an die untergeordnete Komponente übergeben. Wenn sich der Wert einer untergeordneten Komponente ändert, kann sie diese Funktion aufrufen, um den neuen Wert an die übergeordnete Komponente zu übergeben.
Hier ist ein Beispiel:
// 子组件中的value就是来自父组件。当子组件的value发生改变,可以调用函数发射给父组件,让父组件获取这个值
function ChildComponent(props) {
return (
<input type="text" value={
props.value} onChange={
props.onChange} />
);
}
// 父组件
function ParentComponent() {
const [value, setValue] = useState('');
function handleValueChange(event) {
setValue(event.target.value);
}
return (
<div>
<ChildComponent value={
value} onChange={
handleValueChange} />
<p>Child Component Value: {
value}</p>
</div>
);
}
ChildComponent
In diesem Beispiel empfängt die untergeordnete Komponente value
zwei onChange
Requisiten und wendet sie auf ein <input>
Element an. Wenn <input>
sich der Wert des Elements ändert, ruft es onChange
die Funktion auf und übergibt ihr den neuen Wert.
Die übergeordnete Komponente ParentComponent
definiert eine Zustandsvariable value
und eine Funktion handleValueChange
und übergibt diese Funktion als onChange
Requisiten an die untergeordnete Komponente. Wenn sich der Wert der untergeordneten Komponente ändert, ruft sie handleValueChange
die Funktion auf und übergibt ihr den neuen Wert. Die übergeordnete Komponente kann ihren eigenen Status mit diesem neuen Wert aktualisieren.
Rufen Sie den Wert der untergeordneten Komponente über die React-Referenz ab
Eine andere Möglichkeit besteht darin, den Wert der untergeordneten Komponente über React Ref abzurufen. Sie können in der übergeordneten Komponente eine Referenz erstellen und diese Referenz dann an die untergeordnete Komponente übergeben. In untergeordneten Komponenten können Sie diesen Verweis an ein DOM-Element binden und seinen Wert bei Bedarf über dieses DOM-Element abrufen.
Hier ist ein Beispiel:
// 子组件
function ChildComponent(props) {
return (
<input type="text" ref={
props.inputRef} />
);
}
// 父组件
function ParentComponent() {
const inputRef = useRef(null);
function handleButtonClick() {
const value = inputRef.current.value;
console.log('Child Component Value:', value);
}
return (
<div>
<ChildComponent inputRef={
inputRef} />
<button onClick={
handleButtonClick}>Get Child Component Value</button>
</div>
);
}
ParentComponent
In diesem Beispiel erstellt die übergeordnete Komponente eine Referenz inputRef
und inputRef
übergibt sie als Requisiten an die untergeordnete Komponente ChildComponent
. Ist in untergeordneten Komponenten inputRef
an ein <input>
Element gebunden. Wenn auf die Schaltfläche in der übergeordneten Komponente geklickt wird, ruft diese den Wert des Elements ab inputRef.current.value
und <input>
gibt ihn auf der Konsole aus.
Es ist zu beachten, dass das Abrufen des Werts der untergeordneten Komponente über ref erst dann wirksam wird, wenn die untergeordnete Komponente im DOM gerendert wurde. Sie müssen also warten, bis die untergeordnete Komponente gerendert ist, bevor Sie ihren Wert in der übergeordneten Komponente erhalten.