为什么我不能使用undefined作为redux初始状态?

时间:2018-10-25 21:36:51

标签: redux

如果我理解正确,那么在Redux中使用The initial state may not be undefined的原因是:

  

这是错误的常见来源。人们会忘记[在化简器中]的默认情况,并且会意外返回undefined,然后想知道为什么状态会不时地重置。

虽然我同意这一点,但我也认为undefined有一个用例作为有效的初始状态。就我而言,我最初将loginUser设置为undefined。在authenticateCheck()之后,根据其结果,然后将loginUser设置为null或已认证的用户对象。因此,我的应用可以区分null状态的undefinedloginUser值,并据此采取行动。

const authenticatedUser = (state = undefined, action) => {
  switch (action.type) {
    case STORE_AUTHENTICATED_USER:
      return action.authenticatedUser;
    default:
      return state;
  }
};

当然,此代码抱怨The initial state may not be undefined

作为一种变通办法,我可以将loginUser包装在一个对象中。现在loginUserWrap可以包含loginUser值的undefined

0 个答案:

没有答案