颤动如何删除列表内的地图

Flutter How to remove map inside of List

大家好,我有一张地图列表。我想用 removeWhere() 方法来处理这个。

我的名单在这里:

List<Map<String?, dynamic>> servicesList= [
                    {
                      'title': services[0].title,
                      'price': services[0].price,
                    },
                    {
                      'title': services[1].title,
                      'price': services[1].price,
                    },
                    {
                      'title': services[2].title,
                      'price': services[2].price,
                    },
                    

我这样使用是因为我使用另一个按钮在这个列表中添加了一些地图。

但每当我想 removeWhere() 方法时,我都失败了。

 servicesList.removeWhere(
                    (item) =>
                        item ==
                        ({
                          'title': services[0].title,
                          'price': services[0].price,
                        }),
                  );
print(servicesList);

它不起作用。我该如何处理这种方法?

使用 mapEquals 而不是 == 因为 == 在技术上是比较指针而不是值,比如

List<Map<String?, dynamic>> servicesList= [
                    {
                      'title': 'title0',
                      'price': 'price0',
                    },
                    {
                      'title': 'title1',
                      'price': 'price1',
                    },
                    {
                      'title': 'title2',
                      'price': 'price2',
                    },];
                    
  servicesList.removeWhere(
                    (item) =>
                     mapEquals(item,
                        ({
                          'title': 'title0',
                          'price': 'price0',
                        })),
                  );
print(servicesList);

您还需要导入:

import 'package:flutter/foundation.dart';

试试这个

 servicesList.removeWhere(
                    (item) => item['title'] == services[0].title);