如果我理解正确,那么在Redux中使用The initial state may not be undefined
的原因是:
这是错误的常见来源。人们会忘记[在化简器中]的默认情况,并且会意外返回undefined,然后想知道为什么状态会不时地重置。
虽然我同意这一点,但我也认为undefined
有一个用例作为有效的初始状态。就我而言,我最初将loginUser
设置为undefined
。在authenticateCheck()
之后,根据其结果,然后将loginUser
设置为null
或已认证的用户对象。因此,我的应用可以区分null
状态的undefined
和loginUser
值,并据此采取行动。
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