我正在尝试检查条件,并根据该条件将页面重定向到其他路径。我正在使用以下逻辑:
if (redirectUrl) {
useEffect(() => {
window.location.replace(redirectUrl!);
});
} else {
return <Redirect to={'/page'} />;
}
,但是此逻辑无法正常工作。如果我的网址是www.myUrl.com
,重定向是www.redirectUrl.com
,则此逻辑会将我重定向到www.myUrl.com/www.redirectUrl.com
...不会删除第一个网址。
我该如何正确使用呢?
谢谢
答案 0 :(得分:2)
您不应该在条件内部使用钩子,因为这违反了钩子规则,因此您可能会在组件内部以陈旧状态结束,请阅读此https://reactjs.org/docs/hooks-rules.html
您的代码应类似于
useEffect(() => {
if (redirectUrl) {
window.location.replace(redirectUrl!);
} else {
<Redirect to={'/page'} />;
}
});
对于redirectUrl,也请使用包括协议在内的完整网址
答案 1 :(得分:0)
使用 window.location.href ='https://www.google.com' 您需要使用带有http协议的完整网址。