我有一个动作FETCH_HABITS_SUCCESS,用正确的数据调用:
但是它影响了一个没有收听的减速器:
Dates reducer不会监听FETCH_HABIT_SUCCESS。上一张图像的差异中显示的数据应该是UNMARK_SUCCESS中的数据(执行时间线后面的两个动作)。
出于某种原因,当调用FETCH_HABIT_SUCCESS时,UNMARK_SUCCESS操作会发生实际修改,至少是开发工具显示的内容。我已经检查过我所有的减速器都不会改变状态。我总是复制一份州。 Reactiflux的人们已经检查过我也不会改变状态。
代码:
日期缩减器:https://www.pastiebin.com/5a03538e98322 习惯减速器:
export default function habits(state = {}, action) {
const newState = { ...state };
switch (action.type) {
case 'FETCH_HABITS_SUCCESS':
action.habits.forEach(habit => { newState[habit.id] = habit; });
return newState;
case 'ADD_HABIT_SUCCESS':
case 'EDIT_HABIT_SUCCESS':
newState[action.habit.id] = action.habit;
return Object.assign({}, state, newState);
case 'DELETE_HABIT_SUCCESS':
delete newState[action.habit_id];
return newState;
default: return state;
}
}
有没有人知道我可能做错了什么?