reactjs - React Router 不匹配路由
问题描述
我无法让我的路线按预期工作。我怀疑这是因为我的 App.js 设置的 Routes 运行良好。但是,在其中一个路由中,我希望该页面也有它自己的路由。那些是我无法上班的。我无法弄清楚我哪里出错了。
这是我的 App.js 完美运行:
const App = () => {
return (
<div className="App">
<NavBar />
<Router history={history}>
<Switch>
<Route exact path="/" component={Tools} />
<Route exact path="/audit" component={Audit} />
<Route component={NoMatch} />
</Switch>
</Router>
</div>
);
}
export default App;
但是,如果您转到“审核”组件,那是一个页面,它有自己的菜单来显示不同的组件。这是该代码:
const Audit = () => {
return (
<div>
<NavTabs />
<Router history={history}>
<Switch>
<Route exact path="/general" component={General} />
<Route exact path="/culture" component={Culture} />
<Route exact path="/performance" component={Performance} />
</Switch>
</Router>
</div>
);
}
export default Audit;
当我点击其中任何一个时,我只会得到我的 App.js 需要的“NoMatch”组件。
如果有帮助,这是我的来自 Audit 组件的 NavBar:
class NavTabs extends Component {
render() {
return (
<Nav fill variant="tabs" defaultActiveKey="/general">
<Nav.Item>
<Nav.Link href="/general">General</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link href="/culture" eventKey="link-1">
Culture
</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link href="/performance" eventKey="link-2">
Performance
</Nav.Link>
</Nav.Item>
</Nav>
);
}
};
export default NavTabs;
解决方案
您只需要包装<BrowserRouter>
一次,通常使用 Theapp.js
并且您的嵌套路由<Audit>
应该是path='/audit/general'
Try 如果可行的话。我刚刚注意到你在 app.js 中有两个确切的路径,只有一个应该存在。
推荐阅读
- java - JavaFX 节点未初始化
- python - 在 Python 中使用 Bokeh hovertool 工具提示函数可视化数据时出错
- git - 更新 gitlab 合并请求时避免 push --force
- sql - 如何在 Oracle 11 中取消透视单行?
- amazon-web-services - 使用 AWS CDK 添加和链接资源
- deep-learning - torch.utils.data.random_split() 没有拆分数据
- google-earth-engine - 为什么我的混淆矩阵有 7 个元素,而我尝试了 6 个类?
- kotlin - 如何使用组合函数压缩超过 8 个单声道
- sql - 连接表和临时表时执行计划中的常量扫描和计算标量
- react-native - 弹出 React Native 项目时,Bare 和 ExpoKit 有什么区别?