在 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...
}
我的应用程序的主菜单中有 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...
}