export default async (state = INITIAL_STATE, action) => {
switch (action.type) {
//... Many other cases
CASE 'A':
CASE 'B':
CASE 'C':
CASE 'D':
CASE 'E':
{
//call http request for logging purpose
return { ...state, isLoadingFlag: true };
}
//Yes there is default case
}
}
i具有以上简化器,使isLoadingFlag
成为True。我想知道哪一个命中率,所以我要做的是在reducer
中添加远程记录功能。但是很奇怪,这实际上使国家搞砸了吗?因为我看不到我的加载标志不再显示了。
我不明白为什么会发生这种情况,因为所有还原器护理都在返回状态对象,从理论上讲,它也应该工作,即使我们添加远程网络请求也不是吗?
额外信息:
上述设置的原因是因为我的Mac无法在ADB模式下检测到华为手机,因此我无法在特定设备上执行调试。
我认为您必须从功能初始化中删除async
,因为还必须同步还原器。在您的情况下,还原器由于async
而返回承诺。
redux的还原器应为纯函数,而不是 async
。
我认为您正在使用简化器来实现错误的目的。还原器用于描述应根据派遣动作更改应用程序状态。
要进行远程记录,请使用中间件或异步调度库,例如redux-think
或redux-saga
。
还原功能应为纯函数。您可以在操作和派遣或使用Redux中间件(Redux-thunk)处理异步操作中解决异步操作。
请参阅https://redux.js.org/basics/reducers
在我看来,您应该使用redux-sagas,在那里您可以定义1个传奇,该传说听所有操作或每个动作的1个传奇。尝试。