Я использую сокращение, чтобы сохранить состояние представления, поэтому, когда пользователи возвращаются, у них есть тот же вид и настройки, которые они выбрали до этого, я делаю это излучающие события на сервер и реплицируя изменения в хранилище на бэкэнд и хранении состояния в базе данных.Проверка целостности состояния редукции при инициализации
Каждый раз, когда пользователь входит в систему, мы получаем его настройки с помощью этого CIDE:
if(!user.state){
socket.store = redux.createStore(reducer);
}else{
socket.store = redux.createStore(reducer, user.state);
}
Проблема возникает, когда я хочу, чтобы добавить новые редукторы для новых возможностей и состояния, сохраненные в базе данных устаревает, когда я попробуйте передать старый объект состояния функции createStore я получаю
[Error: Reducer "fooReducer" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may n
ot be undefined.
И мои восстановителей:
//this is a new reducer
function fooReducer(state, action) {
if (!state) {
state = defaultState.foo
}
switch (action.type) {
...
default:
return state
}
}
module.exports = combineReducers({
theme: themeReducer,
settings: settingsReducer,
foo: fooReducer,
});
Не следует ли проверять редуктор на неопределенное состояние этими экранами? Какова была бы лучшая практика для обработки этого и будущих сценариев, когда я хочу добавить новые редукторы?
Я имею в виду, чтобы написать функцию, чтобы проверить, если каждая клавиша на состояние инициализации, но это похоже на то, редуктор должен быть уже делать