nai*_*fen 46 javascript reactjs redux
我想显示成功/错误响应的不同通知栏,我将两个callBacks传递给我的react组件中的redux异步操作,如下所示:
<Button
onClick={e => this.props.actions.asyncAction(item, this.showSuccessBar, this.showErrorBar)}
/>
Run Code Online (Sandbox Code Playgroud)
其中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();
}
});
}
};
}
Run Code Online (Sandbox Code Playgroud)
这是否反对这种模式?换句话说,应该根据状态更改而不是callBacks打开通知栏?
Dan*_*mov 92
这种模式本身就很好.如果这是组件本地的通知,请随时通过Redux进行连接.
这说回调是完全没必要的,因为你已经回复了承诺.等待它的完成.
this.props.dispatch(asyncAction(item)).then(onSuccess, onFailure);
Run Code Online (Sandbox Code Playgroud)
但是,如果您有许多具有此类通知栏的组件,则最好让reducer保留当前通知并对操作做出反应.
| 归档时间: |
|
| 查看次数: |
25197 次 |
| 最近记录: |