将callBacks传递给redux异步操作是否被认为是一种好习惯?
我想为成功/错误响应显示不同的通知栏,我将两个callBack传递给我的react组件中的redux异步操作,如下所示:
<Button onClick={e => this.props.actions.asyncAction(item, this.showSuccessBar, this.showErrorBar)}
/>
其中asyncAction看起来像这样:
export function asyncAction(item, successCallback, errorCallback) { return (dispatch, getState) => {
dispatch(requestItem(item));
return fetch("api.some_url/items/item")
.then(response => response.json())
.then(json => {
if (json.success) {
dispatch(receivePostsSuccess(reddit, json));
successCallback();
} else {
dispatch(receivePostsFail(reddit, json));
errorCallback();
}
});
}
};
}
是否认为这与模式相反?换句话说,通知栏是否应根据状态更改而不是根据回调打开?
回答:
模式本身很好。如果这是组件本地的通知,请随时避免通过Redux对其进行接线。
也就是说,回调是完全不必要的, 只需等待其完成。
this.props.dispatch(asyncAction(item)).then(onSuccess, onFailure);
但是,如果您有许多带有此类通知栏的组件,则最好使用化简器保留当前通知并对操作做出反应。
以上是 将callBacks传递给redux异步操作是否被认为是一种好习惯? 的全部内容, 来源链接: utcz.com/qa/399221.html