无法从 Bloc Flutter 中听到新的价值

Posted

技术标签:

【中文标题】无法从 Bloc Flutter 中听到新的价值【英文标题】:Not able to Listen New Value From Bloc Flutter 【发布时间】:2020-03-28 07:40:09 【问题描述】:

我正在使用 flutter_bloc 库来管理应用程序的状态,因为我在 bloc 类中按下不同类状态更改的按钮,但无法在 build 方法中侦听 BlocProvider。

BlocBuilder<AppBarBloc, bool>(
          builder: (context, isEnabled) 
            print('state detected');
            return Container();
          ,)

//in main.dart were providing the Blocs


MultiBlocProvider(
      providers: [
        BlocProvider<PagesBloc>(
          builder: (BuildContext context) => PagesBloc(),
        ),
        BlocProvider<AppBarBloc>(
          builder: (BuildContext context) => AppBarBloc(),
        ),
      ],
      child: Column(
        children: <Widget>[
          Expanded(
            child: MaterialApp(
              title: 'Flutter Demo',
              initialRoute: '/',
              onGenerateRoute: RouteGenerator.generateRoute,
              theme: ThemeData(
                primarySwatch: Colors.blue,
              ),
            ),
          ),
        ],
      ),
    );

【问题讨论】:

【参考方案1】:

也许你可以查看这个关于bloc listener的链接。

但只是作为你可以做的一个例子:

BlocBuilder<CustomerRegisterBloc, CustomerRegisterState>
      buildCustomerRegisterOnState() 
    return BlocBuilder<CustomerRegisterBloc, CustomerRegisterState>(
      builder: (context, state) 
        if (state is InitialCustomerRegisterState) 
          return PersonalDataForm();
        
        if (state is PasswordCustomerRegisterState) 
        if (state is PaymentFormCustomerRegisterState) 
        if (state is TermsCustomerRegisterState) 
        return Container();
      ,
    );
  

【讨论】:

以上是关于无法从 Bloc Flutter 中听到新的价值的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 从其他 Bloc 监听 Bloc 状态

Flutter 使用 BloC 模式从 API 结果中获取列表元素

Flutter Bloc A 在 Bloc B 中添加流,但此流不会通过 StreamBuilder 在 UI 中呈现

从 StreamBuilder BloC firestore Flutter 获取数据时出错

flutter_bloc :使 initialState 方法异步

从 v7.2.1 迁移到 flutter_bloc v 8.0.0 后不会触发 flutter_bloc 事件