我是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)
这是做事的好方法吗?
对不起-我知道这是一个不好的问题,但是我急于我的项目,而且我没有时间来准备教程或文档。
答案 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 以获取并存储响应