【发布时间】:2023-03-22 13:47:01
【问题描述】:
我需要在登录后导航回原来请求的 URL。
例如,用户输入www.example.com/settings,因为用户未通过身份验证,它将导航到登录页面www.example.com/login。
一旦通过身份验证,它应该会自动导航回www.example.com/settings。
我最初使用react-router-dom v5 的方法非常简单:
const PrivateRoute = ({ isLoggedIn, component: Component, ...rest }) => {
return (
<Route
{...rest}
render={(props) =>
isLoggedIn? (
<Component {...props} />
) : (
<Redirect
to={{ pathname: `/login/${props.location.search}`, state: { from: props.location } }}
/>
)
}
/>
);
};
<PrivateRoute exact isLoggedIn={isLoggedIn} path="/settings" component={Settings} />
谁能告诉我如何在 v6 中做到这一点?提前致谢
【问题讨论】:
-
一种通用的方法是在路径名中进行查询,例如
/login/search?next=/settings -
如何记住原来的url?即我怎么知道我需要将
settings附加到网址
标签: javascript reactjs react-router-dom