Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 重定向到您来自的页面_Reactjs_React Router - Fatal编程技术网

Reactjs 重定向到您来自的页面

Reactjs 重定向到您来自的页面,reactjs,react-router,Reactjs,React Router,我创建了受保护的路由组件,如果没有经过身份验证,它将重定向到登录名为“/”的位置。这很好。我的问题是,如果用户经过身份验证,如何限制路径“/” 例如,我想转到'/welcome',我点击了一些外部链接,将我发送到'/welcome',但由于我没有经过身份验证,它会将我重定向到'/'进行身份验证。在我完成身份验证后,它应该再次将我重定向到'/welcome',我的初始路径 怎么做?我现在确实想对路径进行硬编码,我想将我发送到最初所在的路径 如果我在浏览器中将路径手动更改为'/welcome',如果

我创建了受保护的路由组件,如果没有经过身份验证,它将重定向到登录名为“/”的位置。这很好。我的问题是,如果用户经过身份验证,如何限制路径“/”

例如,我想转到
'/welcome'
,我点击了一些外部链接,将我发送到
'/welcome'
,但由于我没有经过身份验证,它会将我重定向到
'/'
进行身份验证。在我完成身份验证后,它应该再次将我重定向到
'/welcome'
,我的初始路径

怎么做?我现在确实想对路径进行硬编码,我想将我发送到最初所在的路径

如果我在浏览器中将路径手动更改为
'/welcome'
,如果我按“后退”按钮,它将返回到
'/'
,我不希望这样。考虑到我已通过身份验证,它应该保持在
'/welcome'

我试过这样的方法:

<Route exact path="/">
    {isAuth ? <Redirect to="/welcome" /> : <Auth />}
</Route>

{isAuth?:}
问题是我不想硬代码重定向到“/welcome”,因为我可能来自另一个路径
”/example'


有什么建议吗?

试试这样做

const PrivateRoute = ({ component: Component, isLoggedIn, ...rest }) => (
  <Route
    {...rest}
    render={props =>
      isLoggedIn ? (
        <Component {...props} />
      ) : (
        <Redirect
          to={{ pathname: '/', state: { from: props.location } }}
        />
      )
    }
  />
);
我使用路由器内部的受保护路由作为

<PrivateRoute
          path="/someEndpoint"
          component={SideMenu}
          isLoggedIn={props.isLoggedIn}
        />


我希望我能帮助你。

你的回答很有帮助,还有一件事吗?如果我在浏览器中手动将url更改为
“/”
,如果经过身份验证,我如何保持当前路线?如果这对您有帮助,我很高兴。请在我的答案中点击勾选标记接受。关于你的问题,你能告诉我一些使用codesandbox.io的场景吗
<PrivateRoute
          path="/someEndpoint"
          component={SideMenu}
          isLoggedIn={props.isLoggedIn}
        />