在 StatelessWidget 内的页面开始时调度第一个 bloc 事件或 cubit 方法

Dispatch first bloc event or cubit method, on page start inside StatelessWidget

我的应用程序的主菜单中有 10 个按钮,每个按钮中都包含 BlocBuilder。

因此,当我单击这些按钮打开新页面时,我想发送第一个事件,但我不知道如何发送。我可以将所有 类 更改为有状态小部件,然后在 initialState() 函数中调用 bloc.dispatch(event) ,但是我想探索另一种方式,但不确定是否是最好的方式

你可以在声明 like 的同时使用 .. 运算符添加事件

BlocProvider(
            create: (context) => FirstBloc()..add(InitialiEvent()), // <-- first event, 
            child: BlocBuilder<FirstBloc, FirstState>(
              builder: (BuildContext context, state) {
                ...
              },
            ),

或者您也可以在 initState 方法中完成

为了在 BlocBuilder 中触发第一个 event/method 调用,我必须添加 bloc 参数并提供我的 BlocProvider 参数,只有在这之后我才能调用我的方法。

BlocBuilder<MyCubit, MyState>(
      bloc: BlocProvider.of<MyCubit>(context)..myFunction(),
      builder: (BuildContext context, state) {
//Your code...
}