React中useHistory钩子无法使用,装最新react-router-dom仍报错
问题原因及解决方案
核心原因
你安装的是React Router DOM v6+版本,这个版本已经移除了useHistory钩子,改用useNavigate替代,所以直接导入useHistory会触发未加载的错误。
验证方式
查看你的package.json里react-router-dom的版本号,如果版本号是以6.x.x开头,就符合这个情况。
解决办法
方案1:改用useNavigate(推荐,适配最新版本)
替换原有代码:
// 旧代码 import { useHistory } from 'react-router-dom'; const history = useHistory(); history.push('/target-path'); // 新代码 import { useNavigate } from 'react-router-dom'; const navigate = useNavigate(); navigate('/target-path');
方案2:降级到React Router DOM v5(兼容旧代码)
执行以下命令降级版本:
npm uninstall react-router-dom npm install react-router-dom@5.3.0
内容的提问来源于stack exchange,提问作者Paris Vinuya
相关产品推荐
相关产品推荐

