React无法正确重定向

时间:2019-10-14 03:13:02

标签: javascript reactjs typescript react-router

我正在尝试检查条件,并根据该条件将页面重定向到其他路径。我正在使用以下逻辑:

if (redirectUrl) {
   useEffect(() => { 
   window.location.replace(redirectUrl!);
   });
} else {
   return <Redirect to={'/page'} />;
}

,但是此逻辑无法正常工作。如果我的网址是www.myUrl.com,重定向是www.redirectUrl.com,则此逻辑会将我重定向到www.myUrl.com/www.redirectUrl.com ...不会删除第一个网址。 我该如何正确使用呢? 谢谢

2 个答案:

答案 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协议的完整网址。