Если я правильно понимаю, причина The initial state may not be undefined
в Redux заключается в том, что:
Это был слишком распространенный источник ошибок.Люди забудут случай по умолчанию [в своем редукторе] и непреднамеренно вернут неопределенное значение, а затем удивятся, почему состояние сбрасывается время от времени.
Хотя я согласен с этим, я также думаю, что естьвариант использования для 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
значением