在React中,子组件向父组件传参(或称为“通信”)通常通过事件回调的方式实现。父组件向子组件传递一个函数作为props,子组件在需要时调用这个函数,并可以通过参数的形式向父组件传递数据。
下面是一个简单的例子来说明这个过程:
父组件(ParentComponent)
import React, { useState } from 'react';
import ChildComponent from './ChildComponent'; function ParentComponent() { const [childData, setChildData] = useState(''); // 这是一个由父组件传递给子组件的函数,用于接收子组件的数据 const handleChildData = (data) => { setChildData(data); }; return ( <div> <h1>Parent Component</h1> <p>Data from Child: {childData}</p> <ChildComponent onReceiveData={handleChildData} /> </div> );
} export default ParentComponent;
子组件(ChildComponent)
import React from 'react'; function ChildComponent({ onReceiveData }) { // 假设这里有一个按钮,点击时会触发数据传递 const sendDataToParent = () => { const dataToSend = 'Hello from Child!'; onReceiveData(dataToSend); // 调用父组件传递的函数,并传递数据 }; return ( <div> <h2>Child Component</h2> <button onClick={sendDataToParent}>Send Data to Parent</button> </div> );
} export default ChildComponent;
在这个例子中,ParentComponent
通过props向ChildComponent
传递了一个名为onReceiveData
的函数。这个函数在ParentComponent
中被定义,用于更新ParentComponent
的state(即childData
)。当ChildComponent
中的按钮被点击时,它会调用onReceiveData
函数,并传递一个字符串'Hello from Child!'
作为参数。这样,ParentComponent
就能够接收到来自ChildComponent
的数据,并更新其状态,从而在UI上反映出这一变化。
这种方式是React中实现组件间通信的一种常用且有效的方式,特别适用于父子组件之间的数据传递。