Вот правила для редукторов:
- Должен возвращать любое значение, кроме «undefined».
- Создает «состояние» или данные, которые будут использоваться внутри вашего приложения, используя только предыдущиесостояние и действие.
- Не должен выходить за пределы себя, чтобы решить, какое значение вернуть.
- Не должен изменять его аргумент входного состояния.
Ваш combineReducers
будет выглядеть так:
export default combineReducers({
property1: model1Reducer,
property2: model2Reduce,
property3: model3Reducer
}
Ваш конкретный редуктор будет выглядеть так:
export default () => {
return 123;
}
Теперь, что я не показал выше, это синтаксис ES2015 (selectedSong = null
), гдевы делаете что-то вроде этого:
const selectedSongReducer = (selectedSong = null, action) => {
if (action.type === 'SELECTED_SONG') {
return action.payload;
}
return selectedSong;
}
Это следует правилу 1, где мы должны возвращать любое значение, кроме undefined
, потому что если мы этого не сделаем, мы получим неопределенное значение при загрузке приложения, поэтому мы реализуемЗначения аргумента по умолчанию из ES6 / ES2015.
Не обязательно по умолчанию null
, это может быть пустой массив, строка или объект, в зависимости от контекста вашего редуктора.
Во второй раз ваш редуктор будет вызыватьсяonger будет undefined
, первый аргумент будет тем, что он возвратил при последнем запуске.
Единственное, что изменяется при вызове редуктора - это объект действий.