打开时从PopupMenuButton中删除项目

时间:2020-03-07 18:43:51

标签: flutter flutter-widget flutter-state

我有一个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
      },
  )

如何使弹出菜单在打开时自行重建?

0 个答案:

没有答案