用类参数传递BlocProvider

时间:2019-08-25 10:00:04

标签: flutter dart bloc-provider

在我的应用程序中的一个类中,我想使用类参数传递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))),

是否有通过和使用该解决方案的解决方案?

1 个答案:

答案 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
      }
  );
}