List 无法在颤振中使用.map函数

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

因此,我跟随一本关于Flutter应用程序开发的书,在这本书中,我的任务是实现一个ToDoMenuItem类并在其中创建一个列表

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
...
}