我有一个PopupMenuButton
,其中显示了从PopupMenuItem<String>
生成的一些List<String>
。每个项目都有一个删除按钮,该按钮将从列表中删除String
。问题在于,删除项目后,弹出菜单不会被重建,直到将其关闭并再次打开。
似乎无论我做什么,即使使用GlobalKey
并调用key.currentState.setState()
,也不会导致弹出菜单在关闭并再次打开之前被重建。
GlobalKey _favoritesKey = new GlobalKey();
PopupMenuButton<String>(
key: _favoritesKey,
icon: Icon(Icons.bookmark_border),
itemBuilder: (context){
List<PopupMenuItem<String>> result = [];
model.favorites.forEach((x){
result.add(PopupMenuItem<String>(value: x, child: Row(
children: [
IconButton(icon: Icon(Icons.delete_outline), onPressed: (){
model.removeFavorite(x);
_favoritesKey.currentState?.setState((){});
setState(() {});
}),
Text(x)
]
)));
});
return result;
},
onSelected: (x){
// Do something with the selected value
},
)
如何使弹出菜单在打开时自行重建?