как уменьшить повторяемость кода редьюсеров?
Упрощённые условия.
Есть два типа похожих товаров: автомобили и мотоциклы.
Есть отдельно фильтр автомобилей и мотоциклов. У этих фильтров есть общие поля:
- модель
- цвет
Была идея вынести эти два редьюсера как две функции (model, color), и соединить уже в два редюсера так
export const carFilter = combineReducers({
model,
color,
})
Но тогда два редьюсера реагируют на экшены одного типа и изменяя параметр "цвет" фильтр у фильтра автомобилей изменяется аналогичный параметр фильтра мотоциклов.
Написать функцию, которая принимает экшоны, на которые нужно реагировать, и отдает редьюсер?
Похоже на кейс для именованных high-order reducer, https://github.com/reactjs/redux/blob/master/docs/recipes/reducers/ReusingReducerLogic.md
Обсуждают сегодня