我的减速器有问题,我需要一些帮助,请:在我的有效载荷中,我发送{data,type}
,在我的reducer中,我想检查类型,以知道我将把有效载荷存储在哪个位置:
当检索完成时,我的Reducer看起来像:
case GRID_GET_ADDITIONNAL_CONFIG_SUCCESS:
switch (action.payload.type) {
case 'compo':
return {
...state,
loading: false,
links: {
...state.links,
compo: [...state.links.compo, action.payload.data],
},
};
case 'traca':
return {
...state,
loading: false,
links: {
...state.links,
traca: [...state.links.traca, action.payload.data],
},
};
case 'revers':
return {
...state,
loading: false,
links: {
...state.links,
revers: [...state.links.revers, action.payload.data],
},
};
case 'externaldoc':
return {
...state,
loading: false,
links: {
...state.links,
external: [...state.links.external, action.payload.data],
},
};
default:
return state;
}
我的输出应该是这样的:
ReducerName : {
loading : false;
links : {
compo : { Here an array with all data with 'compo' type},
traca : { Here an array with all data with 'traca' type},
revers : { Here an array with all data with 'revers' type},
externaldoc : { Here an array with all data with 'externaldoc' type},
}
}
我想我的开关箱里错过了一些东西,有人知道问题出在哪里吗?非常感谢。
您的调度函数应该是这样的。。。
dispatch({
type: "some type",
payload : { data }
});
然后在你的交换机情况应该是这样的:
switch (action.type) {
case 'compo':
return {
...state,
loading: false,
links: {
...state.links,
compo: [...state.links.compo, action.payload.data],
},
};
case 'traca':
return {
...state,
loading: false,
links: {
...state.links,
traca: [...state.links.traca, action.payload.data],
},
};
case 'revers':
return {
...state,
loading: false,
links: {
...state.links,
revers: [...state.links.revers, action.payload.data],
},
};
case 'externaldoc':
return {
...state,
loading: false,
links: {
...state.links,
external: [...state.links.external, action.payload.data],
},
};
default:
return state;
}
这是工业界普遍遵循的惯例。我希望你能理解一些要点。这必须解决您的问题,请尝试使用此。另外,尝试以这种方式实现调度功能。