Я придумал способ, но, надеюсь, у кого-то будет лучшее решение. Но на самом деле я создал еще один список, чтобы помочь нам с этим заболеванием. Этот список будет содержать имена (или все, что вы хотите). Затем я проверяю, есть ли это имя в списке, и если оно есть, оно возвращает null, иначе добавляю Item в список. Это был единственный способ, который я мог придумать в тот момент, когда дело доходит до добавления экземпляра класса.
List<String> _names = [];
double totalPrice = 0.0;
List<String> get names {
return _names;
}
void add(Item item, String newNames) {
itemList.add(item);
_names.add(newNames); // add new names to names list
totalPrice += item.price;
notifyListeners();
}
// If the names list contains any name from the docs already, then don't add anything
// else add the name to the list along with the Item
cart.names.contains(snapshot.data.documents[index]["name"])
? null
: cart.add(
Item(
name: snapshot.data.documents[index]["name"],
price: snapshot.data.documents[index]["price"],
imageUrl: snapshot.data.documents[index]["imageUrl"]
),
snapshot.data.documents[index]["name"]
);
Кстати, используя get не имеет смысла, если вы не собираетесь делать свои свойства частными с помощью подчеркивания, например, int _singleProductCount = 0;