React Router <Link>标签渲染正常但点击无响应跳转失败如何解决?
React Router Link标签点击无响应排查方案
你可以按以下优先级逐一排查问题:
- 检查Header组件是否正确导入Link
请确认Header组件代码顶部存在这行导入语句,漏导入会导致Link功能异常:import { Link } from 'react-router-dom'; - 修复App.js的语法错误
你提供的App.js代码存在语法疏漏,function App()后缺失函数体包裹的大括号,修正后代码如下:function App() { return ( <div className="App"> <Switch> <Route exact path="/" render = {() => ( <HomepageLayout> <Homepage /> </HomepageLayout> )} /> <Route path="/registration" render={() => ( <MainLayout> <Registration /> </MainLayout> )} /> </Switch> </div> ); } - 检查react-router-dom版本兼容性
如果你安装的是v6及以上版本的react-router-dom,原有v5版本的Switch、render属性写法已被废弃,需要改用新语法:- 首先将App.js中的
Switch替换为Routes,render属性替换为element属性:
import { Routes, Route } from 'react-router-dom'; function App() { return ( <div className="App"> <Routes> <Route path="/" element={ <HomepageLayout> <Homepage /> </HomepageLayout> } /> <Route path="/registration" element={ <MainLayout> <Registration /> </MainLayout> } /> </Routes> </div> ); } - 首先将App.js中的
- 检查元素遮挡问题
可以打开浏览器审查工具,点击Link位置查看选中的元素是否为标签,如果选中的是其他层级元素,说明存在上层元素遮挡,给Header的样式添加以下属性即可:.header { position: relative; z-index: 999; }
内容的提问来源于stack exchange,提问作者Eliza
相关产品推荐
相关产品推荐

