El error: Server Error ReferenceError: localStorage no está definido Este error ocurrió mientras se generaba la página. Todos los registros de la consola se mostrarán en la ventana del terminal.
import { LOGIN_SUCCESS, LOGIN_FAIL, LOGOUT } from "../actions/types"; const user = JSON.parse(localStorage.getItem("user")); const initialState = user ? { isLoggedIn: true, user } : { isLoggedIn: false, user: null }; export default function (state = initialState, action) { const { type, payload } = action; switch (type) { case LOGIN_SUCCESS: return { ...state, isLoggedIn: true, user: payload.user, }; case LOGIN_FAIL: return { ...state, isLoggedIn: false, user: null, }; case LOGOUT: return { ...state, isLoggedIn: false, user: null, }; default: return state; } }
Está relacionado con la representación del lado del servidor y la representación del lado del cliente. Como Next.js proporciona SSR, debe considerar el uso de objetos como window, localStorage, etc. Mientras compila el lado del cliente, esos objetos están bien, pero cuando Nextjs compila el lado del servidor, muestra un error como el que compartió.
Puedes usar algo como esto:
let user = null; if (typeof window !== "undefined") { user = JSON.parse(localStorage.getItem("user")); } else { // ... server-side logic }
Para otras soluciones, consulte aquí: https://dev.to/vvo/how-to-solve-window-is-not-defined-errors-in-react-and-next-js-5f97