【问题标题】:React router conditionally route or open modal反应路由器有条件路由或打开模式
【发布时间】: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


【解决方案1】:

为什么不使用这样的模态道具并从注册组件打开模态?

<Route exact path="/register">
    <Register modal={cookies.login_status === 'valid'} />
</Route>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 2018-11-04
    • 2018-06-02
    相关资源
    最近更新 更多