从 Flutter 的 List<Widget> 中删除索引式 CustomWidget

Har*_*sar 3 dart flutter flutter-sliver dart-2

我最初在列中的小部件列表为空。现在在“其他小部件”上单击“我正在在 _contactItems 中添加新的自定义小部件”

   Column(
      children: _contactItems,
    )

 List<Widget> _contactItems = new List<CustomWidget>();



 _contactItems.add(newCustomWidget(value));
Run Code Online (Sandbox Code Playgroud)

现在假设我有 6 条记录(列中有 6 个自定义小部件)。我正在尝试删除索引记录(例如,我要删除第三条记录,然后删除第一条记录。列小部件(动态小部件)应更新为 _contactItems 中的更新setState()

现在,在CustomWidget上单击“我将从列中删除该特定的CustomWidget”

setState(() {
          _contactItems.removeAt(index);
        });
Run Code Online (Sandbox Code Playgroud)

还尝试过

_contactItems.removeWhere((item) {
            return item.key == _contactItems[index].key;
          });
Run Code Online (Sandbox Code Playgroud)

Zro*_*roq 6

试试这个(假设您的列小部件键具有以下格式):

setState(() {
  this._contactItems.removeWhere((contact) => contact.key == Key("index_$index"));
});
Run Code Online (Sandbox Code Playgroud)

如果这不能解决您的问题,也许我们需要更多信息。