flutter - 使用类参数传递 BlocProvider
问题描述
在我的应用程序中的一个类中,我想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))),
有什么解决方案可以通过和使用它吗?
解决方案
看起来您传递的不是函数,而是函数的结果。
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
}
);
}
推荐阅读
- c - 编译和打开时不显示窗口
- flutter - 为什么颤振插件不能在代码中工作?
- file - 如何批量制作具有某些内容的文件?
- delphi - 如何将应用程序 Delphi 与 Google Calendar API 集成,如何插入日历?
- c# - 从 2 个表中获取 oracle 中的数据,其中一个或两个表中不保证任何条目
- html - 使图像适合具有固定宽度的容器 - 确保 IE11 不会拉伸或扭曲它们
- python - OR-Tools 护士调度 shift_scheduling_sat.py 问题/问题
- c# - 如何从 ExecuteAsync 的代码中取消 dotnet 核心工作进程?
- unit-testing - 带有@Quarkus 注释的测试用例抛出错误(也使用 Intellij idea 插件)
- selenium-chromedriver - 无法使用 findElements()、filter() 或 selectLink() 定位特定的 HTML 元素