草庐IT

尝试从 youtube-search-tutorial 实现 BLoC 时发生 Flutter 错误

我在flutter中实现BLoC时遇到了问题,我遵循了这个教程:https://github.com/ResoCoder/youtube-search-flutter-bloc但我收到以下无法调试的编译器消息:Compilermessage:file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/bloc-0.8.4/lib/src/bloc.dart:24:44:Error:Nonamedparameterwiththename'seedValue'._stateSubject=BehaviorSubject(seedValue:

dart - 对 Bloc 使用单例

我知道我的一些BLOC在整个应用生命周期中只会被实例化一次。将这些BLOC类创建为单例是不好的做法还是反模式。Singleton可以帮助在任何地方访问BLOC,并确保该类只被实例化一次。当在另一个BLOC中使用一个BLOC并传递单例时,我还可以确保安全,就好像它是“只是另一个”实现一样。这样做可能会产生什么影响?编辑我有两个BlocAuthenTicationBloc-这是一个全局性BlocUserBloc-应该只存在一次(单例)AuthenTicationBloc必须使用其中的UserBloc。如果我将UserBloc设为单例,那么将其用作UserBloc()会很容易。否则我必须在A

Flutter_bloc 从没有 UI 事件的 firestore 获取更新的数据

我正在使用Flutter从少数设备交换Firestore数据。如果我使用StreamBuilder一切正常,但我不喜欢将业务逻辑与UI混合。我更喜欢使用BLOC作为模式使用flutter_bloc插件。但是flutter_bloc是这样工作的:步骤:事件------------------------>新数据但没有新UI事件异步请求异步响应State(mapEventToState)------->¿我如何获得新的状态?我没有“UI事件”,因为Firestore数据正在从另一台设备更新,所以我无法更新状态。我可以在bloc构造函数上使用类似的东西:Streamquery;Quedada

dart - 如何在 Hot Reload 上使用 Provider 维护 Flutter Global BloC 状态?

每当我执行热重载时,我似乎都会丢失应用程序状态。我正在使用BloC提供程序来存储应用程序状态。这在main.dart中的App级别传递并在子页面上使用。在View的初始加载时,会显示该值。我可以在应用程序中导航并且状态仍然存在。但是,当我执行热重载时,我会丢失值和看似状态。如何解决此问题,以便在热重载时保留状态?区block提供者abstractclassBlocBase{voiddispose();}classBlocProviderextendsStatefulWidget{BlocProvider({Keykey,@requiredthis.child,@requiredthis

architecture - flutter BLoC : Is using nested StreamBuilders a bad practice?

有没有更好的方法将小部件公开给来自不同BLoC的两个或多个流?到目前为止,我一直在使用嵌套的StreamBuilder来处理我需要收听的尽可能多的流,就像下面粘贴的代码一样。这是一个好习惯吗?StreamBuilder(stream:firstBloc.stream1,builder:(_,AsyncSnapshotsnapshot1){returnStreamBuilder(stream:secondBloc.stream2,builder:(_,AsyncSnapshotsnapshot2){returnCustomWidget(snapshot1.data,snapshot2.d

firebase - Flutter Firebase BLoC 模式

我想知道如何管理Firebase的BLoC模式。我找不到Firebase的任何BLoC示例,所以它可能很广泛,但请原谅我。我看到了一些基本的BLoC实现,但它们基本上是以主动方式而不是被动方式获取数据或更新View,也不是通过数据库(几乎是APIJSON的东西)。所以,我想看看当用户更新自己的个人资料信息时,如何为Firestore处理一些BLoC模式,比如被关注(被动方式)。有没有人引导我正确的方式?非常感谢任何帮助! 最佳答案 BLoC模式为您提供的只不过是可以通过stream.sink添加新数据来更新的数据流。使用Firest

view - Flutter:bloc,如何显示警报对话框

我是Bloc模式和流媒体的新手。我想在按下按钮时显示一个警告对话框,但我找不到方法。其实我的代码是:Widgetbutton(){returnRaisedButton(child:Text('Showalert'),color:Colors.blue[700],textColor:Colors.white,onPressed:(){bloc.submit();});}returnScaffold(appBar:AppBar(title:Text("Title"),),body:StreamBuilder(stream:bloc.getAlert,builder:(context,sna

dart - Flutter 中的嵌套数据和 BLoC

我的Flutter应用具有以下一般结构:初始屏幕显示联系人对象列表。用户可以点击一个联系人,这会调出一个详细信息屏幕,可让用户查看整个联系信息,并临时修改任何详细信息。用户可以关闭屏幕而不保存更改,或点击保存按钮,该按钮会永久更新联系人,完成后会返回初始屏幕。我正在使用FireStore。该列表是用Stream构建的,当用户点击一个项目时,应用程序的路由器解析路由名称(例如/contacts/123),创建相应的DocumentReference并将其转发到详细屏幕的初始化程序,然后使用DocumentReference.get加载详细信息,和DocumentReference.upd

dart - 用于导航流的 Flutter Bloc

我开始使用BLoC模式,但我有一个问题:1)你应该使用BloC模式来确定路由是否应该改变?示例:身份验证对象更改为unauthenticated,因此监听器应处理路由更改。2)BLoC模式是否应该只用于UI状态并处理UI更改时的路由更改?示例:用户点击login并导航到home屏幕。我问这个问题是因为我面临一个没有中央导航管理解决方案的问题。此代码现在在我的BLoC中:loggedIn.listen((AuthResponseuser){currentUserSubject.add(user);Navigator.pushReplacement(_context,PageRouteBu

ios - 当 BLOC 中的流值发生变化时导航到新屏幕

在Flutter中,当流的值发生变化时,我将如何调用Navigator.push?我尝试了下面的代码,但出现错误。StreamBuilder(stream:bloc.streamValue,builder:(BuildContextcontext,AsyncSnapshotsnapshot){if(snapshot.hasData&&snapshot.data==1){Navigator.push(context,MaterialPageRoute(builder:(context)=>SomeNewScreen()),);}returnText("");});