添加回调函数到您的 PopUpMenu 类:
PopUpMenu
class PopUpMenu extends StatelessWidget { VoidCallback onDelete; PopUpMenu({this.onDelete}); void showMenuSelection(String value) { switch (value) { case 'Delete': onDelete(); break; // Other cases for other menu options } }
然后在原始类中创建它:
... trailing: PopUpMenu( onDelete: () { levelsData.removeWhere((element) => element == element); } ))); }
Flutter中的一般经验法则是将回调传递给子项而不是尝试访问父项中的数据。
你可能还需要制作你的 StuffInTiles 小部件有状态并添加 setState(() {}); 到你的 onDelete ,因为简单地删除该值实际上不会使用新列表更新您的视图。
StuffInTiles
setState(() {});
onDelete