我是Flutter的新手,也是Bloc的新手。编译代码时出现错误:ThefollowingassertionwasthrownbuildingLogin(dirty,state:_LoginFormState#44e7f):BlocProvider.of()calledwithacontextthatdoesnotcontainaBlocoftypeBtnBloc.NoancestorcouldbefoundstartingfromthecontextthatwaspassedtoBlocProvider.of().Thiscanhappenifthecontextyouusecome
我是Flutter的新手,也是Bloc的新手。编译代码时出现错误:ThefollowingassertionwasthrownbuildingLogin(dirty,state:_LoginFormState#44e7f):BlocProvider.of()calledwithacontextthatdoesnotcontainaBlocoftypeBtnBloc.NoancestorcouldbefoundstartingfromthecontextthatwaspassedtoBlocProvider.of().Thiscanhappenifthecontextyouusecome
在某些情况下,经常创建和关闭带有各自BLoC的屏幕。所以我有点担心在这个过程中创建的Streams实例的内存安全,因为它们似乎没有被放置在某个地方或者它们是否是GC-ed。这显然取决于DART库和flutter的具体实现。所以如果你知道他们的行为,请告诉我。这些是我遇到的一些场景。类似浏览器的多标签应用程序。通过屏幕导航。(但它并没有那么有害。)当对话框中有BLoC时的showDialog()场景。这是一个更为常见的情景。应用中可能会频繁弹出大量对话框。我想知道是否有必要重写dispose()函数并显式关闭BLoCProvider中的所有流。似乎现有的教程没有提到它。
在某些情况下,经常创建和关闭带有各自BLoC的屏幕。所以我有点担心在这个过程中创建的Streams实例的内存安全,因为它们似乎没有被放置在某个地方或者它们是否是GC-ed。这显然取决于DART库和flutter的具体实现。所以如果你知道他们的行为,请告诉我。这些是我遇到的一些场景。类似浏览器的多标签应用程序。通过屏幕导航。(但它并没有那么有害。)当对话框中有BLoC时的showDialog()场景。这是一个更为常见的情景。应用中可能会频繁弹出大量对话框。我想知道是否有必要重写dispose()函数并显式关闭BLoCProvider中的所有流。似乎现有的教程没有提到它。
我错过了一些东西。我最近看了讲座here,在Dart中,flutter开发人员正在使用带有reactx的bloc开发方法。如果我使用这些流和streamBuilders来管理流经我的应用程序的数据,并适本地重建,我是否应该使用StatefulWidget,无论如何我都在使用bloc方法?我想更具体地说,我为什么要使用流和状态使我的应用程序复杂化,而我可以只使用流,将我需要的东西包装在提供程序中,将一些小部件包装在streamBuilder中,然后就这样结束了? 最佳答案 doesitbehoovemetouseaStatefulWi
我错过了一些东西。我最近看了讲座here,在Dart中,flutter开发人员正在使用带有reactx的bloc开发方法。如果我使用这些流和streamBuilders来管理流经我的应用程序的数据,并适本地重建,我是否应该使用StatefulWidget,无论如何我都在使用bloc方法?我想更具体地说,我为什么要使用流和状态使我的应用程序复杂化,而我可以只使用流,将我需要的东西包装在提供程序中,将一些小部件包装在streamBuilder中,然后就这样结束了? 最佳答案 doesitbehoovemetouseaStatefulWi
希望我能说清楚。在视频和教程之后,我发现这种方式可以让一些小部件将数据输入到bloc(valueSetting)和其他一些小部件来获取这些数据(value)。我要问的是是否有更好的方法(必须有..)。我想避免在小部件之间共享1个实际值需要4个变量。import'dart:async';import'package:rxdart/subjects.dart';classBlocExample{final_valueSettingController=StreamController();//objectusebywidgettopushdataSinkgetvalueSetting=>_
希望我能说清楚。在视频和教程之后,我发现这种方式可以让一些小部件将数据输入到bloc(valueSetting)和其他一些小部件来获取这些数据(value)。我要问的是是否有更好的方法(必须有..)。我想避免在小部件之间共享1个实际值需要4个变量。import'dart:async';import'package:rxdart/subjects.dart';classBlocExample{final_valueSettingController=StreamController();//objectusebywidgettopushdataSinkgetvalueSetting=>_
这是Bloc(简体):import'package:autobleidas_flutter/bloc/bloc_base.dart';import'package:firebase_auth/firebase_auth.dart';import'package:rxdart/rxdart.dart';classLoginBlocextendsBlocBase{finalFirebaseAuth_firebaseAuth=FirebaseAuth.instance;finalPublishSubjectloggedIn=PublishSubject();finalPublishSubje
我正在尝试创建一个BLOC,它依赖于另外两个基于时间的bloc和一个非基于时间的bloc。我所说的基于时间的意思是,例如,他们正在连接远程服务器,所以这需要时间。它的工作原理是这样的:登录(当然需要一些时间)如果登录成功做另一个过程(这也需要时间。它返回一个future。)登录和另一个进程完成后,让页面知道。我的BLOC依赖于这三个:finalUserBloc_userBloc;finalAnotherBloc_anotherBloc;finalFinishBloc_finishBloc;在映射事件到状态方法中,我应该调度相关事件。但是,如果他们完成了,我等不及了。_userBloc.