【发布时间】:2017-10-23 11:08:52
【问题描述】:
我想知道我是否正确理解了 React 或 React-Native 中 Redux-thunk 异步操作的模式,以及我们如何对操作状态进行用户反馈。
我觉得要么我不理解这个模式,要么还有其他谜题。
因此,在我的 React-native 应用程序中(但它也可能适用于 React),我想调用一个更新 REST 调用,这将返回一个承诺。 在成功或失败的情况下,我想向用户显示一条消息。
没有 Redux-async,我只需调用其余部分,并处理 promise。
callServiceUpdate(data).then(() => displaySuccessMessage())
.catch(() => displayErrorMessage());
在 Redux 训练中,当我们做 async 时,我们只是 dispatch 一个 action,这个 action 会调用 async 操作。
所以,在我们定义动作的动作文件中:
// in file databaseActions.js
export function updateStatusAction(isSuccess, errorMessage) {
return {
type: 'UPDATE_STATUS',
isSuccess,
errorMessage };
}
export function UpdateAction(data) {
return (dispatch) => {
callServiceUpdate(data)
.then(() => dispatch(updateStatusAction(true)))
.catch((error) => dispatch(updateStatusAction(false, error)));
}};
调度操作将调用服务。
然后我们派发 updateStatusAction,它会更新 redux 状态,并通过 props 更新回组件。
那么如何将成功结果返回给用户呢? 是通过props,处理componentWillReceiveProps吗?
是不是太复杂了? 或者有更简单的方式为用户提供反馈?
【问题讨论】:
标签: reactjs react-native redux redux-thunk