颤抖。集团。为什么事件没有被发送?

问题描述 投票:0回答:1

我希望在页面加载时将事件发送到块。问题是该事件没有发送到该块。可能是什么问题呢? 我已经这样做过很多次了,没有任何问题。我现在不明白出了什么问题。

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());
  }
}
flutter dart events bloc
1个回答
0
投票

使用 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));
             }
           ),
}
© www.soinside.com 2019 - 2024. All rights reserved.