我有一个异步thunk,它从Web服务中获取一些信息,它可以派发三种类型的操作。
FETCH_REQUESTED
FETCH_SUCCEEDED
FETCH_FAILED
最终,如果成功了,它会返回实际的响应或错误对象。
我有一个组件,应该通过订阅FETCH_FAILED
动作来检测操作是否失败,并根据错误类型(404/401和其他状态代码)显示错误消息。
export const fetchData = () => {
return async (dispatch, getState) => {
const appState = getState();
const { uid } = appState.appReducer;
await dispatch(fetchRequested());
try {
const response = await LookupApiFactory().fetch({ uid });
dispatch(fetchSucceeded(response));
return response;
} catch (error) {
dispatch(fetchFailed());
return error;
}
}
}
我对redux和react还比较陌生,所以不确定是否朝着正确的方向前进,希望得到帮助。