React 17.0.2引入Navlink报'Navlink' is not exported from 'react-router-dom'问题问询
问题诱因
该报错和React 17.0.2本身无关联,核心诱因有两个:
- 拼写错误:react-router-dom所有正式版本导出的导航组件名为
NavLink,第二个单词首字母L为大写,你代码中写的Navlink为错误拼写,不存在对应的导出项 - 版本不匹配/依赖冲突:
- 本地安装的是v4以下的极旧版react-router-dom,该版本区间尚未引入
NavLink组件 - 本地存在多版本react-router/react-router-dom冲突,导入时指向了无该导出的依赖包
- 本地安装的是v4以下的极旧版react-router-dom,该版本区间尚未引入
解决方法
按以下顺序排查即可:
- 修正导入拼写,将所有导入和使用的
Navlink改为NavLink
示例正确导入写法:import { NavLink } from 'react-router-dom' - 拼写修正后仍报错的话,先检查本地依赖版本:
执行命令npm list react-router-dom查看当前安装的react-router-dom版本- 版本低于v4:安装适配React17的稳定v5版本即可,执行命令:
npm install react-router-dom@5.3.4 - 版本为v6及以上:清理依赖缓存重新安装即可,依次执行:
- 删除项目下的node_modules文件夹、package-lock.json文件、yarn.lock文件
- 执行
npm install重新安装所有依赖
- 版本低于v4:安装适配React17的稳定v5版本即可,执行命令:
- 排查是否有依赖版本冲突:在package.json中指定react-router和react-router-dom为同版本号,锁定版本后重新安装依赖即可。
内容的提问来源于stack exchange,提问作者the wind
相关产品推荐
相关产品推荐

