Вы можете решить этот случай следующим образом:
// store
@observable updateError = null;
@action.bound
async updateCount(_count, callback) {
this.count = _count;
try {
// call http service
const response = await MyService();
if (response.error) {
this.updateError = response.error;
}
} catch (error) {
this.updateError = error;
}
}
// component
click = () => {
this.props.store.updateCount(3);
};
render() {
if (this.props.store.updateError) {
return <h1>Error happened during update. Details {this.props.store.updateError}<h1>
}
return <YourComponent/>
}
Преимущество такого решения состоит в том, что вы разделяете свою бизнес-логику и логику вашего компонента, а не смешиваете бизнес-логику с кодом обработчиков событий компонента.