使用react-router-dom 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
相关产品推荐
相关产品推荐

