【问题标题】:Private Route on refresh is including the Redirect Route刷新时的私有路由包括重定向路由
【发布时间】:2019-09-06 20:05:43
【问题描述】:

我正在尝试在 ReactJS 中做一个简单的 PrivateRoute,最初当我编写 PrivateRoute 函数时,它不会重定向到它设置到的组件。

这是原来的PrivateRoute组件

 import React from 'react';
 import { Route, Redirect } from 'react-router-dom';
 const PrivateRoute = ({component: Component, authenticated , ...rest}) => {
    return (
    <Route {...rest} render={(props) => (
    authenticated === true
      ? <Component {...props} />
      : <Redirect to='/login' />
  )}/>
  )
 }



 export default PrivateRoute;

然后我编辑了PrivateRoute 组件以摆脱{...rest} 属性,它工作正常,它重定向到受保护的页面。但是每当我编辑PrivateRoute 组件并且浏览器刷新时,它们包括我编辑的页面和重定向页面,就好像我同时注销和登录一样。事后看来,如果authenticated 不正确,我重定向的/login 页面将位于首页,而受保护的组件将位于同一页面的正下方。

这是在刷新新页面之前工作的组件

 import React from 'react';
 import { Route, Redirect } from 'react-router-dom';
 const PrivateRoute = ({component: Component, authenticated ,}) => 
  {
    return (
    <Route render={(props) => (
    authenticated === true
      ? <Component {...props} />
      : <Redirect to='/login' />
  )}/>
  )
 }



 export default PrivateRoute;

任何帮助将不胜感激,这是我的 App.js

     <BrowserRouter>
      <Route path="/" component = {LandingPage} exact/>
      <Route path="/login" component={Login} exact/>
      <Route path="/register" component={Register} exact/>
      <PrivateRoute path="/dash" component={Dash}  authenticated={authenticated}/>
    </BrowserRouter>

【问题讨论】:

    标签: reactjs routes react-router-dom


    【解决方案1】:

    我发现了为什么我在App.js 文件中遇到的问题我将身份验证状态设置为 false 并且没有设置解决我的问题的超时功能

    【讨论】:

    • 我遇到了这个问题。你能告诉我你在 App.js 中的代码吗?
    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 2020-02-03
    • 2015-11-24
    • 1970-01-01
    • 2020-06-15
    • 2017-07-27
    • 2017-09-17
    • 2020-11-12
    相关资源
    最近更新 更多