当前位置:首页 > React

react子如何传父

2026-01-24 10:57:42React

在React中,子组件向父组件传递数据通常通过回调函数实现。以下是几种常见方法:

通过props传递回调函数

父组件将一个函数作为props传递给子组件,子组件调用该函数并传递数据。

父组件示例:

function Parent() {
  const handleData = (data) => {
    console.log('Received from child:', data);
  };

  return <Child onSendData={handleData} />;
}

子组件示例:

function Child({ onSendData }) {
  const sendData = () => {
    onSendData('Hello from child');
  };

  return <button onClick={sendData}>Send Data</button>;
}

使用Context API

对于深层嵌套组件,可通过Context共享状态和更新函数。

创建Context:

const DataContext = React.createContext();

function Parent() {
  const [data, setData] = useState(null);

  return (
    <DataContext.Provider value={{ data, setData }}>
      <Child />
    </DataContext.Provider>
  );
}

子组件使用:

function Child() {
  const { setData } = useContext(DataContext);

  const updateData = () => {
    setData('Updated from child');
  };

  return <button onClick={updateData}>Update Data</button>;
}

使用状态管理库

在Redux或MobX等状态管理方案中,子组件可直接dispatch action或修改store。

Redux示例:

function Child() {
  const dispatch = useDispatch();

  const sendData = () => {
    dispatch({ type: 'UPDATE_DATA', payload: 'Redux data' });
  };

  return <button onClick={sendData}>Dispatch</button>;
}

自定义事件(较少使用)

通过EventEmitter等模式实现自定义事件机制。

事件总线示例:

react子如何传父

const events = new EventEmitter();

function Parent() {
  useEffect(() => {
    events.on('childEvent', (data) => {
      console.log(data);
    });
    return () => events.off('childEvent');
  }, []);
}

function Child() {
  const emitEvent = () => {
    events.emit('childEvent', 'Event data');
  };
}

每种方法适用于不同场景:简单组件推荐props回调,复杂应用可考虑Context或状态管理库。选择时需权衡组件耦合度和项目复杂度。

标签: react
分享给朋友:

相关文章

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…

react 如何debug

react 如何debug

React 调试方法 使用 React Developer Tools React Developer Tools 是浏览器扩展,支持 Chrome 和 Firefox。安装后,可以在开发者工具中查看…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…

react如何启动

react如何启动

启动 React 项目的步骤 确保已安装 Node.js React 需要 Node.js 环境运行,建议安装最新稳定版(LTS)。可通过以下命令检查是否已安装: node -v npm -v…

react 如何精通

react 如何精通

掌握核心概念 深入理解React的基础概念,包括组件(函数组件与类组件)、状态(useState)、生命周期(useEffect)、Props传递、虚拟DOM与Diff算法。通过官方文档或《React…