动作创建者React / Redux的反应很慢

时间:2017-04-28 22:07:41

标签: reactjs redux redux-thunk

我的动作创建者调用函数的响应速度超过了10秒(超过10秒)。

export function acceptContract(id) {
  return function(dispatch) {

    const config = { headers: { authorization: localStorage.getItem('etherToken') } };
    const data = { data: id };

    axios.put('/pending-contracts/accept', 
      data,
      config
    ).then( response => {
        console.log(response);
        getPendingContracts();
      })
      .catch( response => {
        // If the get doesn't work, boot the user out to index.
        console.log(response);
      });

  }
}

我更新了我的数据库中的合同值之一,我希望redux然后为用户调度新列表以在UI上显示更新。

不确定为什么getPendingContract()调用需要这么长时间。我几乎立刻得到了我后端的回复。

export function getPendingContracts() {
  return function(dispatch) {

    axios.get('/pending-contracts', {
      headers: { authorization: localStorage.getItem('etherToken') }
    })
    .then( response => {
      console.log('in getPendingContracts')
      return dispatch({
        type: PENDING_CONTRACTS_LIST,
        payload: response.data.message
      });
    })
    .catch( response => {
      // If the get doesn't work, boot the user out to index.
      console.log(response);
    });

  }
}

1 个答案:

答案 0 :(得分:1)

问题可能与您从getPendingContracts致电acceptContract的方式有关。您只需直接调用该函数,而无需调度它。据我所知,所有会做的就是返回一个永远不会被调用的函数,不知道你是如何获得响应的。将呼叫更改为:

then( response => {
    console.log(response);
    dispatch(getPendingContracts());
})