You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-admin中如何通过MenuItemLink传递属性?

给MenuItemLink跳转的组件传递state属性的正确方式

当然可以给MenuItemLink加载的组件传递属性,你遇到location.state返回undefined的问题,大概率是to属性的写法不对,以下是正确的实现步骤:

  • 给MenuItemLink的to属性传对象格式,而不是字符串路径,这样才能携带state数据:

    <MenuItemLink
      to={{
        pathname: '/你的目标路由路径',
        state: { name: '测试数据', id: 123 } // 这里放你要传递的任意数据
      }}
      label="菜单选项文本"
    />
    
  • 目标组件中用useLocation获取state的代码是正确的,但要注意两个前提:

    1. 必须通过点击这个MenuItemLink跳转进入目标组件,直接刷新页面或手动输入URL会导致state丢失(因为state存在内存中,不会同步到URL)
    2. 确保已经正确导入useLocation:
      import { useLocation } from 'react-router-dom';
      

如果还是获取不到state,可以排查这些点:

  • 检查to属性是不是写成了字符串形式(比如to="/path"),这种写法无法携带state
  • 确认跳转动作确实是由该MenuItemLink触发的,而非其他路由跳转方式
  • 核对react-router-dom的版本,虽然核心用法一致,但部分旧版本可能存在兼容问题

内容的提问来源于stack exchange,提问作者kailoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:55:11