使用中的推送历史记录效果会导致其他路线中的重定向

我的页面上有这个钩子

useEffect(() => {
    if (props.messages.msg !== "No token,authorization denied") {
      props.clearMsg();
      setInterval(() => {
        props.history.push("/");
      },2500);
    }
  },[props.messages.msg,props.history]);

基本上,当我从redux收到服务器的响应时,我在2.5秒后重定向到我的根页面, 而且效果很好,问题是当我进入根目录页面并尝试转到另一条路由时,我被重定向回根目录,就像useEffect再次运行一样,我尝试对其进行控制台记录似乎没有再次运行,所以我不知道为什么会发生这种情况,有任何想法吗?

carol548 回答:使用中的推送历史记录效果会导致其他路线中的重定向

我相信您的意思是setTimeout,这里只会调用一次回调:

  useEffect(() => {
    if (props.messages.msg !== "No token,authorization denied") {
      props.clearMsg();
      setTimeout(() => {
        props.history.push("/");
      },2500);
    }
  },[props.messages.msg,props.history]);
,

setInterval每2.5秒运行一次,效果不止一次。卸载组件时,请使用clearInterval,以防止其再次运行。这是clearInterval上的文档。

本文链接:https://www.f2er.com/3077492.html

大家都在问