Задать вопрос
@ckatala

Как сохранить state в localstorage ssr await/async?

Скажите как правильно сохранить состояние в localstorage srr
У меня есть блок который по умолчанию открыт. Если его скрыть, то при обновлении страницы он открывается и после сразу же скрывается! Как сделать чтоб он не раскрывался при обновлении страницы

state = {
    closed: false
  }

componentDidMount() {
    if (localStorage.getItem('state')) {
      this.setState({ ...JSON.parse(localStorage.getItem('state')) })
    }
  }

componentDidUpdate() {
    if (this.state.closed === true) {
      document.body.classList.add('block-closed')
    } else {
      document.body.classList.remove('block-closed')
    }
  }
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Академия Eduson
    React-разработчик
    2 месяца
    Далее
Решения вопроса 1
@abberati
frontend-разработчик
localStorage синхронный. Почему бы не использовать значение из него при инициализации стейта?

componentDidUpdate() {
    if (this.state.closed === true) {
      document.body.classList.add('block-closed')
    } else {
      document.body.classList.remove('block-closed')
    }
  }

Вот так не надо делать. Вот так надо делать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽