创建小部件时的颤振redux调度事件

创建小部件时的颤振redux调度事件,redux,flutter,Redux,Flutter,我想在构建小部件时使用redux操作加载数据。比如说: 用户打开应用程序,然后呈现主屏幕组件,在此页面上有一些类别 我已经实现了AppState,它支持多个存储(尚未测试),这些存储在main()中使用存储填充初始数据 因此,在主屏幕中,我可以使用StoreConnector从build()访问数据,因为在convertor中,我将获得存储,所以我可以调度事件或读取应用程序状态。但这只是在build()内部,这是一个问题,因为如果在render方法中分派LoadCategories事件,那么它将

我想在构建小部件时使用redux操作加载数据。比如说:

用户打开应用程序,然后呈现主屏幕组件,在此页面上有一些类别

我已经实现了AppState,它支持多个存储(尚未测试),这些存储在main()中使用存储填充初始数据

因此,在主屏幕中,我可以使用StoreConnector从build()访问数据,因为在convertor中,我将获得存储,所以我可以调度事件或读取应用程序状态。但这只是在build()内部,这是一个问题,因为如果在render方法中分派LoadCategories事件,那么它将进入无限循环

在reactjs中,我能够将分派映射到组件(widget)属性,因此在componentDidMount中,我能够获取数据。这在弗利特看来是不可能的

有什么办法可以做到这一点吗


谢谢

可能不是最好的答案,但我注意到StoreConnector有一个onInit属性,可以满足我的需要

 @override
 Widget build(BuildContext context) {
   return new StoreConnector<AppState, List<Category>>(
    onInit: (store) {
      store.dispatch(LoadCategoriesAction());
    },
    builder: (context, categories) {
@覆盖
小部件构建(构建上下文){
返回新的StoreConnector(
奥尼特:(商店){
store.dispatch(LoadCategoriesAction());
},
生成器:(上下文、类别){

您的答案是正确的,但根据您的用例,还有一种选择。根据文档,您可以使用
onInit
onInitialBuild

这对于在小部件首次显示时为其发送获取数据的操作非常有用

这对于在第一次构建小部件后启动某些动画(例如显示snackbar)非常有用


这个救了我!