Flutter BLoC 类中的 BuildContext

Dmi*_*hov 5 dart flutter bloc

简而言之,它是否context属于 BLoC 类?如果不属于,正确的方法是什么?

我使用 aProvider作为 Firebase DB 和 UI 之间的抽象层。最近,我们进一步抽象以使用 BLoC 模式,以便小部件不会直接操作数据Provider。一切进展顺利,但由于我们同时使用提供程序和 BLoC,我不确定如何BuildContext正确使用它们,因为上下文更多地与 Widgets/UI 相关,而不是与业务逻辑相关。

这是一个例子:

class SomeWidget extends StatelessWidget {
  final SomeWidgetBloc bloc;
  
  SomeWidget({Key key, this.bloc});
  
  @override
  Widget build(BuildContext context) => StreamBuilder(stream: bloc.getSomeData, 
     builder: (context, snapshot) {
        return Text(snapshot.data ?? "Empty");
     }
}

class SomeWidgetBloc {
  BuildContext context; // should it be here? Currently, it's needed for the Provider
  
  SomeWidgetBloc(BuildContext context);
  
  Stream<String> get getSomeData {
     return Provider.of<SomeFirebaseProvider>(context).fetchSomeData();
  } 
}
Run Code Online (Sandbox Code Playgroud)

小智 0

您应该在创建时将SomeFirebaseProvider实例传递给构造函数。SomeWidgetBloc