本文介绍了初始页面加载时未调用nextjs router.events.on的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个正在工作的useEffect
在更改页面时调用我的Google分析。这在更改页面时可以很好地工作,但是当您第一次加载或刷新时,它不会调用router.events.on
这是我的代码
useEffect(() => {
if (cookies === true) {
router.events.on("routeChangeComplete", () => {
ReactGA.pageview(window.location.pathname);
});
return () => {
router.events.off("routeChangeComplete", () => {
ReactGA.pageview(window.location.pathname);
});
};
}
}, [router.events]);
我想使用另一个useEffect
最初调用reactGA,但在更改页面时它会被调用两次,这不太好。
您对如何在初始页面加载时执行此操作有什么想法吗?
推荐答案
router.events
仅在使用Next.js路由器的客户端页面导航上触发。
您可以在单独的useEffect
上调用ReactGA.pageview
以处理初始页面加载。
useEffect(() => {
if (cookies === true) {
ReactGA.pageview(window.location.pathname);
}
}, []);
这篇关于初始页面加载时未调用nextjs router.events.on的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!