通过localStorage在reducer中填充initialState

时间:2019-03-20 17:51:43

标签: reactjs redux react-redux

我有一个react / redux应用程序,在这里我需要使用localStorage从状态开始填充道具。

我当时正在考虑用这种方式做

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

我听说将initialState与逻辑复杂化并不是一个好习惯,但是我还没有找到其他实现方法

有更清洁的解决方法吗?

1 个答案:

答案 0 :(得分:2)

只需使用运算符,就可以使用默认的函数参数在reducer本身中定义初始状态。用户的初始状态将首先在本地存储中检查,如果它为 null ,则它将是一个空字符串。

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

希望这会有所帮助!