flutter - Flutter,如何将exist Bloc用于其他屏幕?
问题描述
假设 A 类是任意根的,其子类是 B、C 和 D 类。
(并非所有类都在同一层次结构中)
当我在 D 类中使用 BlocConsumer 或 BlocBuilder 时,出现错误。
我只想重用 A 类和 B 类中使用的 Bloc 状态。
有什么解决办法吗?谢谢
- 更新
我说的是这个https://github.com/felangel/bloc/issues/74
除了将它作为导航器参数一个一个地传递给类之外,还有其他方法吗?
解决方案
注意:我假设您正在使用该flutter_bloc
库,但即使您不是,概念也是相同的。
您要访问的 BLoC 必须在您要访问此 BLoC 的所有屏幕/页面之上提供。解决问题的最简单方法是将根 Widget(可能MaterialApp
)包装为BlocProvider
:
runApp(
BlocProvider<YourBloc>(
create: (_) => YourBloc(), // create your BLoC here
child: MaterialApp(...),
),
);
有关更多信息,我建议您观看此视频:https ://www.youtube.com/watch?v=laqnY0NjU3M
推荐阅读
- python - TypeError:发送数据包时需要整数
- machine-learning - 低 RAM 环境中 Fasttex 的 OOV(词汇表外)词嵌入
- javascript - D3 图节点上的搜索功能
- wordpress - 如何在 wordpress 中将archive.php 中的标签显示为下拉菜单?
- spring - 使用基本身份验证获取 OAuth 令牌
- scala - 如何在 flink 中统一度量指标
- javascript - 绑定时特殊字符后的AngularJs换行
- android - 如何阻止 Android WebView 更改标头的大小写?
- android - 如何将 Activity 对象传递给 onBindViewHolder 方法以在 getScaledBitmap 方法中使用该对象
- c++ - 使用较新的 boost 库和使用旧版本的预编译二进制文件