使用Redux时,我在React应用程序中应在哪里进行axios / fetch调用?

时间:2019-04-12 13:10:20

标签: reactjs redux react-redux axios

我是React和Redux的新手,所以我有点困惑。

当我们想要创建一个新状态(或更改更改以前的状态)时,我们只需执行以下操作:

store.dispatch({type: "LOAD_SOMETHING_SOMEWHERE", payload: /*some value*/})

显然,在我们的化简器中,我们看到了调用了哪个操作,并将有效负载应用于要覆盖的状态对象的属性。

所以我的问题是-在这个等式中,我应该在哪里调用我的REST api?

我是否在派遣有效载荷并将其值设置为等于响应之前执行该操作?

所以看起来像这样:

const res = axios.get("https://myendpoint.ep/data")...
store.dispatch({type: "LOAD_SOMETHING_SOMEWHERE", payload: res)

这是做事的好方法吗?

对不起-我知道这是一个不好的问题,但是我急于我的项目,而且我没有时间来准备教程或文档。

1 个答案:

答案 0 :(得分:1)

您的操作可能如下所示:

export const getDataAction = () => {

  axios.get("https://myendpoint.ep/data")
  .then(function (response) {
    store.dispatch({type: "API_SUCCESS", payload: response);
  })
  .catch(function (error) {
    store.dispatch({type: "API_ERROR", error);
  });

};

现在在减速器中,您可以收听 API_SUCCESS API_ERROR 以获取并存储响应