简而言之,
我正在使用一个
以下是一个示例:
context
是否应该属于BLoC类,如果不是,那么正确的做法是什么?我正在使用一个
Provider
作为Firebase数据库和UI之间的抽象层。 最近,我们进一步抽象以使用BLoC模式,以便小部件不直接操作Provider
中的数据。 一切都进行得很顺利,但由于我们同时使用提供程序和BLoC,我不确定如何正确使用BuildContext
,因为上下文与小部件/ 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();
}
}