繁体   English   中英

创建小部件时的 Flutter redux 调度事件

[英]Flutter redux dispatch event when widget is created

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

用户打开应用程序,然后呈现 HomeScreen 组件,此页面上有一些类别。

我已经实现了使用 FlutterStorage 在 main() 中填充初始数据的多个商店(尚未测试)的 AppState。

因此,在 HomeScreen 中,我可以使用 StoreConnector 从 build() 访问数据,因为在转换器中我将获取商店,因此我可以调度事件或读取应用程序状态。 但这只是在 build() 内部有问题,因为如果在 render 方法中调度 LoadCategories 事件,那么它将进入无限循环。

在 reactjs 中,我能够将调度映射到组件(小部件)属性,因此在 componentDidMount 中我能够获取数据。 这在 Flutter 中似乎是不可能的。

任何想法如何实现这一目标?

谢谢

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

 @override
 Widget build(BuildContext context) {
   return new StoreConnector<AppState, List<Category>>(
    onInit: (store) {
      store.dispatch(LoadCategoriesAction());
    },
    builder: (context, categories) {

您的答案是正确的,但根据您的用例,还有其他选择。 根据文档,您可以使用onInitonInitialBuild

初始化

这对于在 Widget 首次显示时分派获取数据的操作非常有用。

初始构建

这对于在第一次构建 Widget 后启动某些动画(例如显示 Snackbars)很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM