将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

回到顶部