「トースト」はMobx State Treeにどこに住んでいますか?
マイ非同期アクションは、次のようなものに見える傾向:
anAsyncAction: process(function* anAsyncAction() {
self.isLoading = true;
const service = getEnv<IMyMarksPageStoreEnv>(self).myService;
try
{
yield service.doSomething();
}
finally
{
self.isLoading = false;
}
}),
それから私は、ビューを表示するために乾杯何を処理させる:
toaster = Toaster.create({
position: Position.TOP
});
render() {
return <button disabled={this.props.store.isLoading} onClick={this.handleButtonClicked}>Do Async Thing</button>
}
handleButtonClicked =() => {
const store = this.props.store;
try
{
await store.anAsyncAction();
toaster.show({ message: "Saved!", intent: Intent.SUCCESS });
}
catch(e)
{
toaster.show({ message: "Whoops an error occured: "+e, intent: Intent.DANGER });
}
}
しかし、イム乾杯することを考え始めて処理はストアではなくビューの非同期的なtry-catchに存続するはずですが、次にビューとのミキシングのビジネスロジックがあるので、わかりません。
提案がありますか?
あなたの答えにはもう少し詳しくwおそらく、私のサンプルコードを参照して、「通知の1つのプロデューサ」を意味するでしょうか? – mikeysee