Reactjs 重定向不';t在路由器v4中绘制组件
如果用户尚未登录,我将尝试重定向该用户。我使用Reactjs 重定向不';t在路由器v4中绘制组件,reactjs,react-router,Reactjs,React Router,如果用户尚未登录,我将尝试重定向该用户。我使用isLoggedIn状态将其存储在redux状态,并将其设置为false,除非用户登录 在路由器的index.js中,我设置了一个条件,将用户重定向到/login,但它不起作用。它确实将url更改为/login,我可以看到布局组件已加载,但登录组件未加载 如果我只是删除条件,我可以看到带有Route组件的Login组件 我尝试了很多不同的方法,但我找不到一个合适的方法来处理这个问题。希望你们能帮助我。顺便说一句,这是为了学习,所以我可能有业余代码 R
isLoggedIn
状态将其存储在redux
状态,并将其设置为false,除非用户登录
在路由器
的index.js
中,我设置了一个条件,将用户重定向到/login
,但它不起作用。它确实将url更改为/login
,我可以看到布局
组件已加载,但登录
组件未加载
如果我只是删除条件,我可以看到带有Route
组件的Login
组件
我尝试了很多不同的方法,但我找不到一个合适的方法来处理这个问题。希望你们能帮助我。顺便说一句,这是为了学习,所以我可能有业余代码
Routes/index.js
class Routes extends React.Component {
constructor(props, history) {
super(props);
this.store = this.props.store;
}
render() {
return (
<Switch>
{this.store.isLoggedIn ?
<Switch>
<Route exact path="/" render={
(props) => <Home {...props} store={this.store} />
} />
<Route path="/quality" render={
(props) => <h1>Quality Track</h1>
} />
<Route path="/login" render={
(props) => <Login {...props} store={this.store} />
} />
<Route render={
(props) => <Login {...props} store={this.store} />
} />
</Switch>
:
<Redirect to="/login" />
}
</Switch>
);
}
}
编辑
当我更改Routes/index.js的最后一部分时,它成功了。这样用可以吗
<div>
<Redirect to="/login" />
<Route path="/login" render={
(props) => <Login {...props} store={this.store} />
} />
</div>
} />
当isLoggedIn
为真时,第一个开关
块包含可用的路由。其他情况下,第二个街区的路线可用。如果isLoggedIn
为false
任何URL都将重定向到/login
{this.store.isLoggedIn ?
<Switch>
<Route exact path="/" render={
(props) => <Home {...props} store={this.store} />
} />
<Route path="/quality" render={
(props) => <h1>Quality Track</h1>
} />
</Switch>
:
<Switch>
<Route path="/login" render={
(props) => <Login {...props} store={this.store} />
} />
<Redirect to="/login" />
</Switch>
}
{this.store.isLoggedIn?
} />
质量跟踪
} />
:
} />
}
{this.store.isLoggedIn ?
<Switch>
<Route exact path="/" render={
(props) => <Home {...props} store={this.store} />
} />
<Route path="/quality" render={
(props) => <h1>Quality Track</h1>
} />
</Switch>
:
<Switch>
<Route path="/login" render={
(props) => <Login {...props} store={this.store} />
} />
<Redirect to="/login" />
</Switch>
}