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

使用react-router-dom NavLink组件时遇_ref is undefined错误求助

解决React Router v6.8.0中NavLink导致的_ref is undefined错误

以下是针对该问题的具体排查和解决思路:

  • 确保自定义组件转发Ref
    NavLink(底层依赖Link组件)需要向子元素传递ref以处理导航逻辑,如果你的MyCustomJsx是自定义函数组件,必须用React.forwardRef转发ref到内部的原生DOM元素上。示例代码:

    import React from 'react';
    
    const MyCustomJsx = React.forwardRef((props, ref) => {
      // 将ref绑定到实际的DOM节点,比如a、span等
      return <span ref={ref} {...props}>你的自定义内容</span>;
    });
    

    类组件则需要确保ref能被正确传递到根DOM元素。

  • 嵌套原生DOM元素作为中间层
    如果不想修改MyCustomJsx,可以在NavLink和自定义组件之间添加一个原生DOM元素(如<span>),让NavLink能将ref传递给这个原生元素:

    <NavLink to="/target-path">
      <span>
        <MyCustomJsx />
      </span>
    </NavLink>
    
  • 升级react-router-dom版本
    v6.8.0可能存在特定的版本bug,尝试升级到v6.9.0及以上版本,该问题可能已被官方修复。执行以下命令升级:

    npm install react-router-dom@^6.9.0
    
  • 检查NavLink的必填属性
    确认你给NavLink传递了to属性,虽然报错指向_ref,但缺少必要属性可能引发连锁错误:

    // 正确示例:包含to属性
    <NavLink to="/home">
      <MyCustomJsx />
    </NavLink>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:25:21