如何从 Dart 中的列表中删除地图 |扑

How to remove Map from list in Dart | Flutter

我有一个 json 列表。从这里我想删除一个特定的项目。下面是我的代码。

final List _vehicleList = [
    {
      'vehicleNumber': 'KL-14-V-5208',
      'vehicleType': 'Two Wheeler',
    },
    {
      'vehicleNumber': 'KL-13-H-8880',
      'vehicleType': 'Four Wheeler',
    },
    {
      'vehicleNumber': 'KL-14-M-6889',
      'vehicleType': 'Three Wheeler',
    },
  ];

这是我的清单。当我按下删除按钮时,我想从这里删除基于 vehicleNumber 的项目。我正在使用列表视图生成器。当我在按下按钮后打印列表时没有任何反应 这是我的 UI 代码。

                       return Column(
                            children: [
                              Padding(
                                padding: const EdgeInsets.all(12.0),
                                child: Text(
                                  _vehicleList[index]['vehicleNumber'],
                                ),
                              ),
                              Padding(
                                padding: const EdgeInsets.all(12.0),
                                child: Text(
                                  _vehicleList[index]['vehicleType'],
                                ),
                              ),
                              GestureDetector(
                                onTap: () {
                                  print('Deleted');
                                  _vehicleList.removeAt(_vehicleList[index]);
                                  print(_vehicleList);
                                },
                                child: const Padding(
                                  padding: EdgeInsets.all(12.0),
                                  child: Icon(
                                    FontAwesomeIcons.timesCircle,
                                    color: Colors.redAccent,
                                  ),
                                ),
                              ),
                            ],
                          );

你应该这样改;

之前;

_vehicleList.removeAt(_vehicleList[index]);

之后
_vehicleList.removeAt(index);

有关如何使用“removeAt”方法的文档。 https://api.flutter.dev/flutter/dart-core/List/removeAt.html

试试下面的代码希望对你有帮助。只需传递您的索引

_vehicleList.removeWhere((element) => element["vehicleNumber"] == 'KL-14-V-5208');