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