umi 3x 中history.listen在useEffect内外监听效果不一致的原因是什么?

新手上路,请多包涵

umi中使用history.listen在useEffect里面执行和在useEffect外全局执行,监听效果不一致

问题:如下所示,我在umi里使用history.listen遇到了点问题,我在组件里,在useEffect里使用每次路由前进后退都能监听到,没有异常。

// 文件 index.tsx 组件函数里

  import { history } from 'umi';
  useEffect(() => {
      history.listen(({ pathname }, type) => {
        //  监听路由没问题,type 是 POP, REPLACE 或者 PUSH 都能监听到
        xxx
      }
    });
  }, []);

但是在某次我写在全局函数里而不是react组件内,就只能监听得到 POP 浏览器返回行为了,请教下大佬们这是为什么吗

// 直接写在文件 index.ts 全局函数里执行
import { history } from 'umi';

history.listen(({ pathname }, type) => {
   //  只能监听得到 type 是 POP 的事件了
   xxx
}

补充下版本信息:
umi@3.5.40
react@16.14.0

阅读 816
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏