@kokapuk

Чем плохо использование localstorage вне хука useEffect?

В общем, у меня есть приложение, которое подгружает данные из localstorage в состояние и уже из состояния в поле defaultValue в инпутах, и поскольку useEffect вызывается первый раз только после рендера, то при подгрузке значение в инпутах уже не меняется, так как defalutValue устанавливается лишь единожды, я нашел для себя такой выход:
const [settings, setSettings] = useState<ISettings>(
    localStorage.getItem("settings") == null ? defaultSettings : (JSON.parse(localStorage.getItem("settings")!) as ISettings)
  );

чем это плачевно и плачевно ли это вообще?
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Вполне рабочий вариант. Я бы только обернул это дело в стрелочную функцию, чтобы на каждом рендере не лазить в локалсторадж
const [settings, setSettings] = useState<ISettings>(() => 
    localStorage.getItem("settings") == null ? defaultSettings : (JSON.parse(localStorage.getItem("settings")!) as ISettings)
  );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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