дартс - как проверить идентификатор / имя, если содержится в списке? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть случай, когда пользователь хочет добавить товар в корзину, перед этим я хочу проверить id/name товар, был ли он в корзине.

, если нет, то я будудобавьте его в корзину, если он уже есть, я просто отредактирую (добавив кол-во и цену)

Я попытался использовать код ниже:

   Future checkIfProductHasAdded(String uid) async {
      for (var i = 0; i < _checkoutList.length; i++) {
        print(_checkoutList[i].name);

      if (_checkoutList[i].productName == getSelectedProduct.name) {
        selectedProductCheckout(i);

        print(getSelectedProduct.name +
            "PRODUCT CHECKOUT HAS ADDED" +
            _checkoutList[i].productName);

       // await updateProductCheckout(uid);

        break;

      } else {
        print(getSelectedProduct.name + "NOT FOUND AT PRODUCT CHECKOUT");
        //await addProductToCheckout(uid);
        break;
      }
    }
  }

когда я print() значениеi не указывает позицию на List, но остается в позиции 0.как заставить это работать?

любой ответ будет оценен.

1 Ответ

0 голосов
/ 05 февраля 2019

Вы должны проверить, существует ли продукт в предложении firstWhere.Как то так:

var product = _checkoutList.firstWhere((product) => product.productName == getSelectedProduct.name, orElse: () => null);

if (product == null) addProductToCheckout(uid);
else updateProductCheckout(uid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...