I have a Next.js project with the following code in _app.tsx
:
const Root = ({ Component, pageProps }) => {
...
const handleHistoryChange = useCallback((url) => {
console.log({ url });
}, []);
useEffect(() => {
router.events.on('beforeHistoryChange', (url) => {
handleHistoryChange(url);
});
return () => {
router.events.off('beforeHistoryChange', handleHistoryChange);
};
}, [router.events, handleHistoryChange]);
}
Why is the console.log triggered 4 times every time the route is updated? How can I get it to only be triggered once?