【发布时间】:2020-06-27 13:24:44
【问题描述】:
我正在使用 React Router 来处理路由,并且某些视图需要用户登录才能使用。我正在使用 react router Redirect 有条件地处理我的视图,并且效果很好,如下所示:
<Route exact path="/register">
{cookies.login_status === 'valid' ? <Register /> : <Redirect to="/" />}
</Route>
但是,现在我需要在满足条件或打开模式而不是路由时呈现视图。现在我的路线看起来像这样:
<Route exact path="/register">
{cookies.login_status === 'valid' ? <Register /> : openModal}
</Route>
如果满足条件,我加载视图组件,如果不满足,我调用函数打开模式。模态打开得很好,但也提供了一个空白视图。
所以我想我的问题是,如果不满足条件,如何阻止它路由/重定向,而只需在当前视图上打开模式?
【问题讨论】:
-
为什么不在Register组件中添加相同的条件?如果 login_status 有效,则显示组件代码,否则打开模式
-
我认为问题是在输入新路由后检查了条件,因此您的 URL 应该已经在新路由上,因此“背景”中不会显示任何组件
标签: javascript reactjs react-router