我正在使用无缝不可变和 redux,并且在更新状态时遇到了一个奇怪的错误。这是我的代码,没有动作返回或 combineReducers 之类的位。只是正在运行/导致错误的垃圾。
初始状态
{
things: {
fetching: false,
rows: []
}
}
动作处理器
export default {
[DEALERS_REQUEST]: (state, action) => {
return Immutable({ ...state, fetching: true });
},
[DEALERS_RECEIVE]: (state, action) => {
return Immutable({ ...state, rows: action.payload, fetching: false });
},
带有 thunk 的中间件
export const thingsFetch = (data) => {
return (dispatch, getState) => {
dispatch(thingsRequest());
dispatch(thingsReceive(data));
}
}
现在,奇怪的是,如果我将这两个动作一起运行,一切都很好。
如果我只 dispatch thingsRequest()
,我会收到“无法推送到不可变对象”错误。
我尝试过使用 set、update、replace、merge 等方法,但它们通常返回“this.merge is not a function”。
我是在程序上做错了什么,还是应该联系模块开发人员报告问题?