Не вот такой редьюсер. Два экшент тайпа - инкремент и декремент (просто нужно либо прибавить 1 либо вычесть), какой из них более правильно возвращает новый state? Или если они оба неправильные, то как надо?
И тоже важный вопрос, а как возвращать state для асинхронной функции??) Как с action.type === "ASYNC". Просто в данном варианте работает как-то криво( обновляет не спустя 2 секунды, а при следующем вызове редьюсера только)
export function rootReducer(state, action) {
if (action.type === 'INCREMENT') {
const count = ++state.count;
return {...state, count: count}
} else if (action.type === 'DECREMENT') {
state.count--;
return state;
} else if (action.type === 'ASYNC') {
setTimeout(() => {
debugger;
const count = ++state.count;
return {...state, count};
} ,2000)
}
return state;
}