【发布时间】:2018-05-06 23:30:32
【问题描述】:
我正在尝试对某些数据发出 GET 请求。 这是我的行动号召。
componentDidMount() {
this.props.fetchData(() => {
this.setState({ isLoading: false });
});
}
在完成之前,我想暂时显示“正在加载...”,因为获取请求正在执行。我为此使用回调并设置我的本地状态。 这是我的带有“回调”的动作创建者。
export function fetchData(callback) {
return (dispatch) => {
axios.get(`/api/fetchsomething`)
.then(() => callback())
.catch((err) => {
console.log(err.message);
});
}
}
这是上面相同的函数,但调度操作以便我可以接收作为道具并渲染到我的 ui。
export function fetchData(callback) {
return (dispatch) => {
axios.get(`/api/fetchsomething`)
.then((response) => dispatch({ type: FETCH_DATA, payload: response }))
.catch((err) => {
console.log(err.message);
});
}
}
我的问题是如何在同一个动作创建函数中进行回调和调度动作?这甚至是一种好的做法吗?
【问题讨论】:
-
如果你想要做的只是设置一个加载状态直到响应可用,你实际上可以在发出异步请求之前调度一个操作,在 redux 存储中设置加载状态,并在你清除它时清除它得到回应
标签: javascript reactjs redux axios redux-thunk