使用react-router-dom的导航栏出现CSS Modules为undefined问题如何修复
问题原因
核心错误出现在Nav.js中NavLink组件的导入逻辑,该错误会直接导致导航栏渲染异常、样式失效:
- 当前代码错误地将
BrowserRouter重命名为NavLink使用,而BrowserRouter是react-router的路由根容器组件,本身仅允许存在一个子元素,这就是导航栏仅能展示1个链接的直接原因 - 错误的组件导入会干扰CSS Modules的样式绑定逻辑,导致开发者工具中看到CSS属性为undefined
修复方案
- 修改
Nav.js的导入语句
将原错误导入:
import { BrowserRouter as NavLink } from 'react-router-dom';
替换为正确的NavLink导入:
import { NavLink } from 'react-router-dom';
修复后导航栏即可正常渲染所有链接、加载对应CSS样式。
可选优化项
- 现有className写法不需要额外套模板字符串,可直接简化为
className={navstyles.navbar}、className={navstyles.navboxhome} navstyles.module.css中三个navbox开头的类样式完全重复,可以合并为一个公共类,减少冗余代码
内容的提问来源于stack exchange,提问作者Eric Shingleton-Smith
相关产品推荐
相关产品推荐

