在此处输入代码我正在尝试创建一个使用Firebase电话身份验证的LoginBloc。我为phoneNumber、smsCode和verificationId创建了一个StreamController。我想借助Bloc模式在VerificationNumber()方法中动态添加它们的值。这是verificationNumber()中的LoginBloc:classLoginBlocextendsObjectwithAuthValidatorimplementsBlocBase{String_phone;String_sms;String_verifId;StreamController
在使用showDialog()导航到新上下文后,我试图访问在我的应用程序根附近创建的bloc实例.但是,如果我像往常一样尝试通过从_thisBlocInstance=BlocProvider.of(context)这样的上下文中获取它来获取bloc,我收到一条错误消息,指示在此上下文中未提供任何bloc。我假设这是因为showDialog()builder方法为对话框中的小部件分配一个新的上下文,这些小部件不知道我正在尝试查找的Bloc,它在用户登录后立即实例化:@overrideWidgetbuild(BuildContextcontext){_authBloc=BlocProvid
我是Flutter和Bloc架构的新手,我正在尝试使用Bloc来实现我的登录功能。我正在尝试调用我的Bloc文件中的函数,但我不知道该怎么做。如果您能帮我看看我在使用Bloc时是否还有其他问题,我也会很高兴。这是我的用户界面的代码:MaterialButton(color:Colors.deepPurple,minWidth:screenAwareSize(500,context),onPressed:(){_submitForm(authBloc,user,pass);},void_submitForm(AuthBlocauthBloc,Stringuser,Stringpass)a
当使用TextFormField时,我无法添加或更新数据,提交给数据库的数据始终为null或者我得到一个NoSuchMethodErrorerrorI/flutter(6511):抛出另一个异常:NoSuchMethodError:Thegetter'value'wascalledonnull我已经这样构建了Bloc:classProductsBloc{Stringid;//Product_product;//ignore:close_sinks//staticfinal_productController=BehaviorSubject();//StreamgetproductOut
在flutter中,我刚刚学习了如何在应用程序上使用Bloc,我想尝试使用此功能实现简单的登录。在实现一些bloc类以在View中使用它之后当我尝试将此代码用作BlocProvider.of(context).dispatch(LoginEvent(loginInfoModel:testLogin));在RaisedButton中错误:BlocProvider.of()calledwithacontextthatdoesnotcontainaBlocoftypeLoginListingBloc.我的观点:class_HomePageStateextendsState{LoginList
我正在使用InheritedWidget将bloc类公开给子组件。但是,每次重新创建小部件树时,都会实例化bloc类的一个新实例。当我使用BehaviourSubject类来存储某些文本字段的最新值时,每次重新创建时我都会丢失当前值。如何解决这个问题,即bloc类应该只实例化一次。 最佳答案 这取决于您的提供程序是如何制作的,如果它是带有InheritedWidget的StatefulWidget的扩展。如果它只是从InheritedWigdet扩展,您将错过dispose方法,因为它不是从StatefulBuilder扩展的,但是
假设我直接在bloc上调用.listen。我没有引用该流,这意味着我无法对其调用.cancel。此流会自动取消吗?在我的例子中,它不在小部件中,而是在数据模型中。数据模型在超出范围时应该被处理掉,但我担心这种流永远不会被取消并在应用程序被杀死之前一直存在:bloc.state.listen((state){if(stateisMyState){dispatch(MyEvent());}});请注意,我的IDE不会发出关于流未被取消的警告。但是,当我这样做时:StreamSubscriptionmyStream;//IDEgivesunderlineandwarningmyStream=
我正在使用bloc_pattern包,我有一个bloc将管理一个最喜欢的IconButton,我有一个名为_isFavorite的bool变量,它将传递到流以显示该项目是否是最喜欢的。当我实例化FavoriteBloc时,出现错误:“错误状态:无元素”。我播种了一个值“false”,但它不起作用。我按照包的示例进行操作,有谁知道我是如何修复它的?classFavoritesBlocextendsBlocBase{FavoritesBloc();bool_isFavorite;var_favoriteController=BehaviorSubject.seeded(false);Str
我正在使用BLoC来保持两个嵌套的FullScreenDialogs之间的状态。当我按下第一个屏幕时,我正在初始化bloc,就像这样returnFloatingActionButton(child:Icon(Icons.add),onPressed:(){Navigator.of(context).push(MaterialPageRoute(builder:(BuildContextcontext)=>ProductBlocProvider(child:ProductEntryScreen()),fullscreenDialog:true));},);ProductEntryScre
我应该什么时候销毁BLoC?即使在官方Blocexamplecode,它为BLoC类创建dispose方法,但它们永远不会被调用。非常感谢。 最佳答案 在您引用的具体示例中,BLoC不需要手动销毁,因为它需要在应用程序的整个生命周期内都可以访问,因此会在应用程序销毁时被销毁。有一个commenttothiseffectinCartProvider.dart.如果您的BLoC仅由您的应用程序的一部分使用,那么您绝对应该处置它。对于您发布的示例,您可能希望将CartProvider包装在StatefulWidget中,然后在Statef