Заполнение initialState в редукторе через localStorage - PullRequest
3 голосов
/ 20 марта 2019

У меня есть приложение реагирования / редукции, в котором мне нужно изначально заполнить реквизит из состояния с помощью localStorage.

Я думал о том, чтобы сделать это с чем-то вроде

const initialState = (() => {
  let username = window.localStorage.getItem('username');
  if (!username) {
    username = '';
  }
  return {
    username: username
  };
})();

Я слышалчто не очень хорошая практика усложнять initialState логикой, но я не нашел других способов сделать это

Есть ли более обходной путь?

1 Ответ

2 голосов
/ 20 марта 2019

Вы можете просто использовать параметры функции по умолчанию для определения начального состояния в самом редукторе, например, просто с помощью оператора или .Первоначальное состояние для пользователя будет сначала проверено в локальном хранилище, и если оно равно null , то это будет пустая строка.

const userReducer = ( state = window.localStorage.getItem("username") || "", action ) => {
  /*
   * some logic to handle actions
   *
   */
  return state;
};

Надеюсь, это поможет!

...