在我的应用程序中的一个类中,我想使用类参数传递BlocProvider
,例如:
enum MenuItems{
dashboard,
tutorials,
logout
}
class DashboardItems {
MenuItems menuItem;
BlocProvider action;
DashboardItems(
{
@required this.menuItem,
@required this.action
}
);
}
在action
字段中,我尝试通过此方法:
BlocProvider.of<MyEvent>(context).dispatch(MyEvent(event)))
例如:
DashboardItems(
menuItem: MenuItems.dashboard,
action: BlocProvider.of<FragmentBloc>(context).dispatch(FragmentEvent(fragmentHome))),
是否有通过和使用该解决方案的解决方案?
答案 0 :(得分:1)
看起来您传递的不是函数,而是函数的结果。
DashboardItems(
menuItem: MenuItems.dashboard,
// pass function here:
action: () { BlocProvider.of<FragmentBloc>(context).dispatch(FragmentEvent(fragmentHome));}
class DashboardItems {
MenuItems menuItem;
Function action; //Change type from BlocProvider to Function.
DashboardItems(
{
@required this.menuItem,
@required this.action
}
);
}