I have two reusable functions where I use window.localStorage.getItem
method.
const userByToken = () => {
const dispatch = useDispatch();
const token = window.localStorage.getItem("token");
const refreshToken = window.localStorage.getItem("refreshToken");
}
this function returns error for using window
but second function
const useValidateToken = (setLoadingState: any) => {
const router = useRouter();
useEffect(() => {
const token = window.localStorage.getItem("token");
const refreshToken = window.localStorage.getItem("refreshToken");
})
}
doesn't return error.
why do I get error without useEffect
?
useEffect
s are not called. But your first snippet is not in an effect, so it tries to call it during the server-side rendering – Brian Thompson