确保您在应用程序中正确设置了依赖注入(DI)系统。使用Provider或其他库包发送数据或存储数据。
确保您在BlocBuilder的父级上正确使用了Provider。
例如,如果依赖注入系统使用的是Provider,那么正确的用法是:
return MultiProvider(
providers: [
Provider(create: (_) => SomeBloc()),
],
child: MaterialApp(
// 包含BlocBuilder部件的组件
),
);
在BlocBuilder部件的上下文中,SomeBloc现在应该是可用的。
下面是一个示例,在其中BlocBuilder使用了CorrectProvider:
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CorrectProvider(
create: (_) => CorrectBloc(anyParameters),
child: MaterialApp(
home: Scaffold(
body: BlocBuilder(
builder: (context, state) {
// ... 基于state的widget显示
}
)
)
)
);
}
}
在这个简单的示例中,CorrectBloc和CorrectState应该如下所示:
class CorrectBloc extends Bloc {
CorrectBloc(anyParamters) : super(InitialCorrectState());
@override
Stream mapEventToState(CorrectEvent event) async* {
// Code
}
}
abstract class CorrectState extends Equatable {
const CorrectState();
@override
List
在这个示例中,CorrectProvider将CorrectBloc提供给MyWidget的BlocBuilder。如果在上下文中找不到CorrectProvider,就会出现上述错误。