Redux动作第二次没有被调用

时间:2017-02-26 15:23:16

标签: javascript reactjs react-native redux react-redux

我有两个redux动作,其调用如下。

export function action1(params) {
  //This line is always called.
  return (dispatch) => {
    //This line is not called the second time.
    return MyApi.call1(params)
    .then(response => {
      // some logic
      return dispatch(someFunction1());
    })
    .catch(error => {
      throw(error);
    });
  };
}

export function action2(params) {
  return (dispatch) => {
    return MyApi.call2(params)
    .then(response => {
      // call the first API again
      action1();
      return dispatch(someFunction2());
    })
    .catch(error => {
      throw(error);
    });
  };
}

首次加载视图时,在视图的构造函数中调用action1。执行操作并在同一视图中触发action2后,需要在action1成功调用action2以从服务器获取更新列表。不幸的是,第二次调用action1时代码中断没有任何错误。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

您尚未发送action1

dispatch( action1( params ) )

在没有action1()的情况下调用dispatch只会返回一个函数。为了在返回的函数中获得dispatch,您应该dispatch该函数。然后它将被redux-thunk中间件捕获。中间件将通过dispatch并调用函数。