ReferenceError: window is not defined
This errors raises on the server side, when NextJS tries to render the page. But you can use window
in the useEffect
hook as written here.
My question is how to create a custom hook. I tried to something like that:
export const useEventListener = (
target: EventTarget, event: string, listener: EventListenerOrEventListenerObject, trigger = true,
): void => {
useEffect(() => {
target.addEventListener(event, listener);
trigger && target.dispatchEvent(new Event(event));
return () => target.removeEventListener(event, listener);
});
};
The window
here is used in useEffect
. But I got the error, because when I call
useEventListener(window, 'scroll', () => {...});
NextJS do not recognize it.
How can I deal with it?