我怎么知道Redux存储何时更新

时间:2018-06-20 18:32:36

标签: reactjs redux react-redux

或者换句话说,我怎么知道何时分派动作完成?

我有一个Webapp,我将通过根据用户输入的调度来更新redux存储。如果我在分派后立即将redux存储的状态推送到服务器,则服务器没有最新信息。在推送到服务器之前,我需要等待操作完成,因此是一个问题。

编辑 根据markerikson的答案,我解决了它。我以为调度是异步调用的,但是调度操作组的执行是同步发生的。那是错误的,马克是正确的。我的问题是更新服务器调用是在组件中进行的,它会将需要通过redux-store更新的道具推送到服务器。道具的更新速度不够快。

2 个答案:

答案 0 :(得分:0)

调度是完全同步的,除非由中间件更改。因此,一旦返回对dispatch()的调用,商店状态就会更新,并且所有订户都将得到通知。

如果您需要等待某些异步行为完成,则可以编写一个返回承诺的thunk,并在分派时将其链接:

function someThunkReturningAPromise() {
   return (dispatch) => {
      const promise = myAjaxLib.fetchData().then(response => {
          dispatch(loadData(response.data));
      });

      return promise;
   } 
}

dispatch(someThunkReturningAPromise()).then( () => {  });

答案 1 :(得分:0)

这个问题有点晚了,但是对于那些根据问题标题来到这里的人们来说,请看一下:

store.subscribe()
store.getState()

其中“商店”是对您的redux商店的引用。

store.subscribe(() => {
    const newState = store.getState();
    // check out your updated state
});

上面的代码将在redux状态更新时随时运行