Reactjs 如何在使用React Router v6进行身份验证后将用户重定向回最初请求的页面?

Reactjs 如何在使用React Router v6进行身份验证后将用户重定向回最初请求的页面?,reactjs,react-router,Reactjs,React Router,我遇到的情况是,如果用户没有经过身份验证,他们会被重定向到登录页面 一旦用户登录,它们就会被发送回主页 这是React的典型情况,但我想知道如何在用户进行身份验证后将其重定向回某个页面 假设用户尝试访问/app/topics,这将是一条专用路径。他们将被重定向到/,在那里他们必须进行身份验证。之后,一旦他们通过身份验证,他们就会被重定向到/app/about 如何确保用户被重定向回/app/topics About组件看起来像 const About = ({ user }) => {

我遇到的情况是,如果用户没有经过身份验证,他们会被重定向到登录页面

一旦用户登录,它们就会被发送回主页

这是React的典型情况,但我想知道如何在用户进行身份验证后将其重定向回某个页面

假设用户尝试访问
/app/topics
,这将是一条专用路径。他们将被重定向到
/
,在那里他们必须进行身份验证。之后,一旦他们通过身份验证,他们就会被重定向到
/app/about

如何确保用户被重定向回
/app/topics


About
组件看起来像

const About = ({ user }) => {
  const navigate = useNavigate();

  React.useEffect(() => {
    if (!user) navigate("/");
  }, [user]);
  return (
    <div>
      <h2>About</h2>
    </div>
  );
};

export default About;
我知道这条线

if (user) navigate("/app/about");
这就是为什么用户在身份验证时被重定向到
关于
,但我想知道如何更改此设置,以便将用户重定向回
主题


我尝试了不同方法的组合。我尝试过的最有希望的事情是将请求的uri保存到我的Redux状态。但是,这会导致我的现有代码出现问题

我还尝试使用
导航
使用导航
保存
状态

如果我没记错的话,React Router v5有一个
redirect
prop或类似的东西,它将用户重定向回某个页面


我会退回到url中的好的旧查询参数,只要重定向到登录页面,将查询参数,
或其他东西放到url中,并且在成功登录后执行重定向,这有一个巨大的建议,如果你带他到不同的页面或出于某种原因他必须重新加载页面,他会保留此信息

if (user) navigate("/app/about");