Javascript Redux异步中间件操作不';我手头没有api调用所需的状态
我有一个react/redux应用程序,如下所示Javascript Redux异步中间件操作不';我手头没有api调用所需的状态,javascript,redux,middleware,react-redux,Javascript,Redux,Middleware,React Redux,我有一个react/redux应用程序,如下所示 用户转到host.com/id Root应用程序获取id并发送一个LOAD\u USER\u DETAILS\u STARTaction w/该id。这将返回用户id,以备其他第三方服务使用 中间件捕获该消息,并对我们的API执行异步调用w/a回调,以便在调用完成时发送LOAD\u USER\u DETAILS\u COMPLETE消息 中间件捕获LOAD\u USER\u DETAILS\u COMPLETE,并使用此新数据触发对第三方API的
LOAD\u USER\u DETAILS\u START
action w/该id。这将返回用户id,以备其他第三方服务使用李>
LOAD\u USER\u DETAILS\u COMPLETE
消息LOAD\u USER\u DETAILS\u COMPLETE
,并使用此新数据触发对第三方API的几个异步调用李>
我的问题是,在步骤4中,我只有LOAD\u USERS\u DETAILS\u COMPLETE
操作及其有效负载。我还需要其他应用程序状态(如开始和结束时间)
目前,我正在使用store.getState()
处理此问题,因为它可以通过中间件签名获得:
const asyncMiddlewareThing = store => next => action => {
next(action);
switch( action.type){
case LOAD_USERS_DETAILS_COMPLETE:
let { start, end } = store.getState().contactsFilter.timeframe;
return store.dispatch(
createFetchContactsStartMessage(action.payload.zuid, start, end)
);
};
这让我觉得我正在打破信息的重复流动。是吗?我这样问是因为我可以看到我需要这样做的几种情况 我会改用redux thunk。它可以选择在提供的函数中获取状态。我将使用redux thunk。它可以选择在提供的函数中获取状态。通过
getState
访问状态完全可以。不过,您可能会发现,只需在操作中传递必要的信息就可以了。通过getState
访问状态完全可以。不过,您可能会发现,只需在操作中传递必要的信息就可以了。