当前位置: 首页 > news >正文

React18中在有路由的情况下父组件如何给子组件传递数据?

在 React 18 中,当项目使用路由(如 React Router v6+)时,父组件向子组件传递数据的方式主要取决于组件之间的关系(是否为路由直接渲染的组件),常见方式如下:

一、若子组件是通过路由直接渲染的(路由组件)

此时子组件由 <Route> 渲染(如 <Route path="/child" element={<Child />}),父组件(通常是路由的祖先组件,如 App 组件)无法直接通过 props 传递数据,需通过以下方式:

1、使用 useOutletContext(React Router 推荐)

React Router v6+ 提供了 useOutletContext 用于在路由层级中传递数据,适合父子路由间通信。

父组件(路由配置处):

在渲染子路由的 <Outlet> 组件中通过 context 属性传递数据。

// 父组件(如 App.js)
import { Outlet } from 'react-router-dom';function Parent() {const data = { name: "父组件数据", id: 123 };return (<div>{/* 通过 Outlet 的 context 传递数据给子路由组件 */}<Outlet context={data} /></div>);
}

子组件(路由组件):

使用 useOutletContext 接收父组件传递的数据。

// 子组件(Child.js)
import { useOutletContext } from 'react-router-dom';function Child() {// 接收父组件通过 Outlet 传递的 contextconst parentData = useOutletConte
http://www.dtcms.com/a/560613.html

相关文章:

  • 边缘计算和云计算有什么区别?
  • 做哪种网站流量大嵌入式软件开发工程师工作内容
  • 【第二十周】机器学习笔记09
  • Linux定时任务:crontab使用教程(附案例)
  • 网站建设配色方案wordpress对接静态网页
  • Instant Mail临时邮箱v7.3.0 最新解锁版
  • MPK(Mirage Persistent Kernel)源码笔记(5)--- 执行引擎
  • 微网站菜单网站开发用哪个框架
  • 【Cache缓存】基本概念
  • 数据结构:单链表(1)
  • 4.2 【2018统考真题】
  • swoole怎么做直播网站网站的安全维护
  • 学做ps的软件的网站新网站百度收录要几天
  • Redis数据结构命令
  • 【Dify】通过Docker-Compose的安装部署(Linux系统)
  • SEO优化学习指南
  • betaflight基于自制特殊固件配置文件的 F405 飞控固件升级与配置迁移指南(附 AI 沟通命令适配技巧)
  • 通过条形码获取对应商品信息python程序
  • LaTeX基础使用
  • 【Linux】基础指令(4):基础指令热键shell运行原理
  • [Dify 实战] 搭建企业内网知识库系统:Dify 自托管部署全攻略
  • LVS 负载
  • NFS服务器的搭建
  • 【高并发服务器】十三、TcpServer服务器管理模块
  • 15.套接字和标准I/O
  • Linux TcpSocket编程
  • 怎么可以在百度发布信息seo won jin
  • TensorFlow深度学习实战——自定义图神经网络层
  • 车陂手机网站开发学校网站群建设必要
  • 【Elasticsearch入门到落地】18、Elasticsearch实战:Java API详解高亮、排序与分页