List 无法在颤振中使用.map函数
因此,我跟随一本关于Flutter应用程序开发的书,在这本书中,我的任务是实现一个ToDoMenuItem类并在其中创建一个列表List 无法在颤振中使用.map函数,list,flutter,dart,flutter-layout,List,Flutter,Dart,Flutter Layout,因此,我跟随一本关于Flutter应用程序开发的书,在这本书中,我的任务是实现一个ToDoMenuItem类并在其中创建一个列表 class-TodoMenuItem{ 最后的字符串标题; 最终图标; TodoMenuItem({this.title,this.icon}); List foodMenuList=[ TodoMenuItem(标题:“快餐”,图标:图标(Icons.fastfood)), TodoMenuItem(标题:“提醒我”,图标:图标(图标。添加报警)), TodoMen
class-TodoMenuItem{
最后的字符串标题;
最终图标;
TodoMenuItem({this.title,this.icon});
List foodMenuList=[
TodoMenuItem(标题:“快餐”,图标:图标(Icons.fastfood)),
TodoMenuItem(标题:“提醒我”,图标:图标(图标。添加报警)),
TodoMenuItem(标题:“飞行”,图标:图标(Icons.Flight)),
TodoMenuItem(标题:“音乐”,图标:图标(Icons.audiotrack)),
];
}
然后我的任务是使用itemBuilder将其映射到PopUpMenuButtonWidget。这是我为它写的课程
类PopupMenuButtonWidget扩展了无状态Widget
实现PreferredSizeWidget{
常量PopupMenuButtonWidget({
关键点,
}):super(key:key);
@凌驾
小部件构建(构建上下文){
返回容器(
颜色:Colors.lightGreen.shade100,
高度:首选大小。高度,
宽度:double.infinity,
儿童:中心(
孩子:弹出菜单按钮(
图标:图标(图标。查看列表),
onSelected:((已选择值){
打印('valueSelected:${valueSelected.title}');
}),
itemBuilder:(构建上下文){
返回foodMenuList.map((TodoMenuItem-TodoMenuItem){
返回PopupMenuItem(
值:todoMenuItem,
孩子:排(
儿童:[
图标(todoMenuItem.Icon.Icon),
填充物(
填充:边缘设置。全部(8.0),
),
文本(todoMenuItem.title),
],
),
);
}).toList();
},
),
),
);
}
@重写//实现首选大小
Size get preferredSize=>Size.fromHeight(75.0);
}
但是,它在此行返回一个错误
返回foodMenuList.map((TodoMenuItem-TodoMenuItem){
错误是
Undefined name 'foodMenuList'.
Try correcting the name to one that is defined, or defining the name.
如何将foodMenuList列表“映射”到小部件?您的
foodMenuList
在todoMenuItem
类中声明,而您试图引用它,就像它是PopupMenuButtonWidget
的一部分一样(您正在PopupMenuButtonModget
的上下文中执行这个.foodMenuList
)
您可以在PopupMenuButtonWidget
中创建并实例化TodoMenuList
的实例,然后使用它
final TodoMenuItem\u todoMenu=TodoMenuItem();
小部件构建(构建上下文){
...
//需要使用列表的地方
_todoMenu.foodMenuList
...
}