我在我的flutter代码中使用redux . 我有一个按钮,按下它会调度一个动作来调用异步API(在我的中间件中) . 我想要做的是当api调用执行并返回响应时,我想显示快餐栏,说明它是成功更新的数据或错误消息 . 我的问题是如何通过调度动作来显示小吃吧 . 或者还有更好的方法在redux中执行此操作吗?
Disclaimer: 这不是在IDE中编写并运行的代码..它只是一种描述问题解决方案的方法 . 可能有错误 .
假设您拥有Redux存储并使用async进行API调用 .
Your page widget:
... _onSubmit(Store<MyState> store) { store.dispatch(new SubmitAction(onCompleted: _onCompleted, onError: _onError)) } _onCompleted() { Scaffold.of(context).showSnackBar(new SnackBar( content: new Text("Item Completed"))); } _onError(error) { Scaffold.of(context).showSnackBar(new SnackBar( content: new Text("Error Occurred"))); }
Your Redux middleware:
apiMiddleware(Store<MyState> store, action, NextDispatcher next) { if(action is SubmitAction) { yourAPICall() .then((data) => action.onCompleted()) .catchError((e) => action.onError(error)); } next(action); }
MyAction class:
typedef void VoidCallback(); typedef void ErrorCallback(error); class MyAction { MyAction({this.onCompleted, this.onError}) VoidCallback onCompeleted; ErrorCallback onError; }
其中一些可以通过期货来完成,但这很简单 .
1 回答
Disclaimer: 这不是在IDE中编写并运行的代码..它只是一种描述问题解决方案的方法 . 可能有错误 .
假设您拥有Redux存储并使用async进行API调用 .
Your page widget:
Your Redux middleware:
MyAction class:
其中一些可以通过期货来完成,但这很简单 .