【发布时间】:2020-05-08 18:34:10
【问题描述】:
我有一个具有以下简化结构的 React 应用程序:
function App(props) {
return (
<Navbar />
<Router>
<Route exact path="/profile/" component={Profile} />
<Route exact path="/" component={Home} />
</Router>
);
}
在Navbar 组件中,我有一个logout 的按钮,这意味着我需要:
- 从存储中删除身份验证令牌(简单地为一般情况做一个逻辑),并且
- 将用户路由到登录页面。
我尝试使用该按钮的onClick 并使用this.props.history.push('/') 更改路径,但这不起作用(它抱怨history 是undefined),因为我的导航栏是在路由器外部定义的.
我的问题是,是否可以将Navbar 移动到我的路由器组件内部并在所有页面中都相同时重复它?或者有没有可以用来更改浏览器路径的防重复解决方案?
【问题讨论】:
-
我觉得把它放在路由器里面就好了,我不认为如果路由改变了Navbar会重新渲染。
-
谢谢,您提到导航栏在更改路线时未呈现很有帮助。
标签: reactjs react-router