我在这里找到了相同的问题,但是我没有找到正确的答案。
我正在使用CRUD操作开发一个简单的应用程序。在编辑页面上,安装组件(componentDidMount())后,应用将调度一个操作以检索特定的帖子详细信息:
componentDidMount()
dispatch({ type: FETCH_POST, id: 'post-id' })
我正在使用 redux-saga, 并希望以上调用返回Promise,以便我可以访问API响应。
现在,没有回调/承诺,我最终在商店中定义了一个新状态(如post_edited),并将其连接/映射到组件中的props进行编辑页面。
post_edited
处理这种情况的最佳方法是什么?
您能否提供有关您的问题的更多信息?我不确定我是否能正确理解您的问题,但是常见的做法是:
API.js
function apiCallToFetchPost(id) { return Promise.resolve({name: 'Test}); }
postSaga.js
function* fetchPostSaga({id}) { try { const request = yield call(apiCallToFetchPost, id); // -> in post reducer we will save the fetched data for showing them later yield put({type: FETCH_POST_SUCCESS, payload: request}); } catch (error) { yield put({type: FETCH_POST_SUCCESS_FAILURE, error}) } } export function* onBootstrap() { yield takeLatest(FETCH_POST, fetchPostSaga); }