【问题标题】:How to refresh <Redirect to='/...'> react如何刷新 <Redirect to='/...'> 反应
【发布时间】:2018-02-11 23:15:12
【问题描述】:

我很难找到答案。现在我所有的

&lt;Route exact path='/' render={()=&gt;&lt;Redirect to='/dashboard'/&gt;}/&gt;

确实是将 url 更改为“.../dashboard”,但它不会刷新页面以便加载组件,只有当我点击刷新时才会加载我的组件。

重定向后如何让&lt;Redirect ... /&gt;刷新页面?

我已经成功使用window.location.reload(),但我不知道如何输入。我也尝试添加&lt;Redirect push to=.../&gt;,但没有运气。

【问题讨论】:

  • 当有人登陆//dashboard 时,您是否要始终重定向?
  • {(auth.isAuthenticated()) ? &lt;Redirect from='/' to='/dashboard/home' /&gt; :&lt;Redirect from='/' to='/login'/&gt;} 是我刚刚尝试过的代码(所以没有),但是它破坏了 auth0,如果我添加此重定向,/login 不会呈现登录组件

标签: javascript reactjs react-router


【解决方案1】:

设置一个开关路由和一个Redirect组件

    <Switch>
      <Redirect from='/' to='/dashboard'/>
      <Route path='/dashboard' render={(props) => (
    auth.isAuthenticated === true
      ? <Component {...props} />
      : <Redirect to='/login' />
  )} 
/>
</Switch>

更多关于docs

【讨论】:

  • 遗憾的是我需要渲染,因为我需要传递道具。我在没有运气的情况下尝试了重定向代码:{(auth.isAuthenticated()) ? &lt;Redirect from='/' to='/dashboard/home' /&gt; :&lt;Redirect from='/' to='/login'/&gt;}
  • 所以,我不能使用您刚刚使用的组件选项(虽然我认为这可以确保它正确加载,但我需要将道具传递给它)。
  • 我用两者混合更新了答案,一个总是重定向,另一个检查身份验证
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多