@TreeFall1

Как исправить ReferenceError: localStorage is not defined?

Я создаю стейт с помощью Zustand. Данные в него загружаются с помощью функции из localStorage:

const getDataFromLocalStorage = (dataName)=>{
		let data = localStorage.getItem(dataName);
		if(data){
			return data;	
		} else{
			return "Empty";
		}
}

export const useStore = ((set)=>({
	playerName: getDataFromLocalStorage("playerName"),
	playerLvl: getDataFromLocalStorage("playerExp")/10,
	playerExp: getDataFromLocalStorage("playerExp"),
	coins: getDataFromLocalStorage("coins"),
}))

Проблема в том, что в консоли next.js выводит ошибку: ReferenceError: localStorage is not defined. Я думаю, что проблема в том, что localStorage не успевает загрузиться. Как это можно исправить?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 2
Нет, проблема не в том, что localStorage не успевает загрузиться. Проблема в том, что код выполняется на сервере, где никакого localStorage вообще нет.
Вам нужно пометить компонент как клиентский и тогда сервер не будет его исполнять.
Ответ написан
KataevAS
@KataevAS
Пометить компонент и все места применения экспортируемого хука, как use client.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы