React多级滑动菜单点击二级项跳转按钮报错求助
React移动端多级滑动菜单跳转报错修复方案
核心问题:你的代码中使用了
props.history.push进行路由跳转,但在React Router v6中,historyprops不再通过组件传递,且useHistory钩子已被废弃,改用useNavigate。修复步骤:
- 导入
useNavigate钩子:import { useNavigate } from 'react-router-dom'; - 在组件内部初始化导航函数:
const Menu = () => { const navigate = useNavigate(); // 其他代码... }; - 修改跳转逻辑函数,替换
props.history.push:const handleNavigate = (path) => { navigate(path); // 按需添加菜单关闭逻辑,比如设置isOpen状态为false }; - 确保你的
Menu组件被BrowserRouter(或其他Router组件)包裹,否则useNavigate无法正常工作。
- 导入
额外检查:确认二级菜单跳转按钮的
onClick事件正确传递了路径参数,比如onClick={() => handleNavigate('/about')},避免因参数缺失导致的报错。
内容的提问来源于stack exchange,提问作者bk___
相关产品推荐
相关产品推荐

