成功/エラー応答に対して異なる通知バーを表示したいので、次のように、反応コンポーネントの redux async アクションに 2 つの callBacks を渡します。
<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();
}
});
}
};
}
これはパターンに反すると考えられますか? つまり、コールバックではなく、状態の変化に応じて通知バーを開く必要がありますか?