当前位置:首页 > 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共享状态和更新函数。

react子如何传父

创建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。

react子如何传父

Redux示例:

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

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

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

自定义事件(较少使用)

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

事件总线示例:

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 native如何启动

react native如何启动

React Native 启动步骤 确保已安装 Node.js(建议版本 14 或更高)和 npm/yarn。安装完成后,通过命令行工具执行以下操作。 初始化新项目 使用 React Native…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 依赖于 Node.js 和 npm(Node Package Manager)。从 Node.js 官网下载并安装最新稳定版本,安装完成后会自动包含 np…

react 如何引入jquery

react 如何引入jquery

引入 jQuery 到 React 项目 在 React 项目中引入 jQuery 可以通过多种方式实现,但需要注意 React 和 jQuery 操作 DOM 的方式可能冲突,因此建议仅在必要时使用…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修…