Flutter 多个 Bloc 和 NamedRoutes
Posted
技术标签:
【中文标题】Flutter 多个 Bloc 和 NamedRoutes【英文标题】:Flutter Multiple Blocs and NamedRoutes 【发布时间】:2020-07-18 11:36:53 【问题描述】:寻求一些关于 Flutter 架构的建议。我正在构建一个应用程序,它有大约 10 个屏幕,全部存储为命名路由并使用 onGenerateRoute。
我正在尝试实现块和流,以便当另一个页面创建新记录(所有在在线 SQL 数据库中处理)时,我可以广播到一个页面。
所以我有两个页面使用一个块,另外 3 个页面需要访问另一个块......等等。这是否意味着提供访问的唯一方法是将所有块的块提供程序放在顶部小部件树,使所有块可用于所有页面?
我试图通过使用这两个页面顶部的提供程序来分别在两个页面上提供对一个 bloc 的访问......但是,我想这意味着我实际上是在创建两个单独的 BloC 对象?而不是两个页面实际上都使用相同的页面。所以当页面B创建新记录时,并不是调用页面A重新加载...
我不希望所有页面都访问所有 BloC,但唯一的方法是将 Bloc 放在需要它的任何页面的单一祖先的地方吗?
我也很困惑为什么要关闭流...我认为关键是它们是连续的数据源...如果我们关闭它们,它们是否不再可用于向订阅者广播?
完全困惑,3 小时后的 YouTube 视频,我也不清楚。 提前谢谢...
【问题讨论】:
【参考方案1】:看看https://bloclibrary.dev/#/recipesflutterblocaccess?id=generated-route-access
当需要blocs的Widgets被dispose时,blocs也应该被dispose。否则,您会因为保持其活动状态而不必要地消耗资源。
【讨论】:
以上是关于Flutter 多个 Bloc 和 NamedRoutes的主要内容,如果未能解决你的问题,请参考以下文章
flutter_bloc - 每个 Bloc 有多个存储库,还是只有一个?
具有多个firebase请求的flutter bloc cubit最佳实践