我希望在页面加载时将事件发送到块。问题是该事件没有发送到该块。可能是什么问题呢? 我已经这样做过很多次了,没有任何问题。我现在不明白出了什么问题。
class Page extends StatelessWidget {
static PageRoute route() {
return FadePageRoute(page: Page());
}
const Page({super.key});
@override
Widget build(BuildContext context) {
return BlocProvider<Bloc>(
create: (context) => NewsBloc(GetIt.instance<Service>())
..add(Event(189)),
child: _PageFlow());
}
}
使用 bloc 时,必须区分创建 bloc 和发送事件 bloc。
以下代码用于创建块。
@override
Widget build(BuildContext context) {
return BlocProvider<Bloc>(
create: (context) => NewsBloc(GetIt.instance<Service>()),
child: _PageFlow());
}
如果您想将事件发送到块,请在 _PageFlow() 内部执行。下面的示例我将 _PageFlow() 替换为 GestureDetector
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => NewsBloc(),
child: GestureDetector(
onTap: () {
BlocProvider.of<NewsBloc>(context).add(Event(189));
}
),
}