list - 如何从数组中删除现有项目

标签 list flutter setstate

我的应用程序中有四个按钮。类似这样的东西

List<String> players = [
{'name': 'player 1'},
{'name': 'player 2'},
{'name': 'player 3'},
{'name': 'player 4'}
];

我正在遍历 map

return Row(
        children: players
            .map((player) => RaisedButton(
                  onPressed: () {selectPlayer(player)}
                  child: Text(player['name']),
                ))
            .toList());

我的初始状态是这样的:

  void initState() {
    super.initState();

    _selectedPlayers = [];
  }

selectPlayer() 看起来像这样:

  selectPlayer(player) {
    if (_selectedPlayers.contains(player)) {
      _selectedPlayers.remove(player);
    } else {
      _selectedPlayers.add(player);
    }

    List newSelectedPlayers = _selectedPlayers;
    setState(() {
      _selectedPlayers = newSelectedPlayers;
    });
  }

如果我删除 selectPlayer 中的 setStateprint(newSelectedPlayers)

这一切都相应地工作。但我需要知道播放器是否已添加/删除,因此这就是我更新状态的原因。

如果我执行 setState,那么,在 build 中,我尝试记录 _selectedPlayers,它们只是被添加,从未被删除,甚至尽管他们不应该……或者我遗漏了什么……

谢谢!

最佳答案

删除此 List<String> players = ['player 1', 'player 2', 'player 3', 'player 4'];从构建上下文中将它放在你的类名下面;

关于list - 如何从数组中删除现有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56224789/

相关文章:

dart - flutter - SocketException : Connection failed (OS Error: Network is unreachable, errno = 101)

flutter - Flutter- Bottom Sheet 中的图标和文本无法正确更新UI

python - Python中列表列表的最大值

list - LISP 的功能语言家族和一个代码片段?

python - 从对象列表中获取唯一的 id 列表

dart - 从 Flutter/Dart 中的 Assets 文件夹加载文件

dart - Caret 符号在 Dart 中有什么作用

c# - 如何从偏移量开始并遍历整个列表?

javascript - React setState 在 while 循环期间不设置状态

reactjs - React typescript - 对象可能未定义