‘Метод ‘_addFromInteger’ был вызван с нулевым значением’ при использовании метода fold в flutter

#flutter #dart #fold

#flutter #дротик #сложите #dart #fold

Вопрос:

У меня есть список продуктов как таковых:

 wastedProducts = [product1, product2, product3, etc]
  

У каждого продукта есть атрибут с именем, amountWasted который является int .

Я пытаюсь суммировать amountWasted атрибуты для каждого продукта в списке, используя .fold() метод как таковой:

  _wastedCount = wastedProducts
              .where((p) => p.masterCat == productHeld.masterCat)
              .fold(0, (amountWasted, product) => amountWasted   product.amountWasted);
  

Я получаю следующую ошибку:

 The method '_addFromInteger' was called on null.
Receiver: null
Tried calling: _addFromInteger(0)
  

Я проверил, что все элементы в списке имеют amountWasted атрибут =! null. Я также пытался изменить начальное значение, но получаю ту же ошибку.

Список также определенно содержит элементы даже после .where() метода, хотя даже если бы он не содержал никаких элементов, я бы все равно ожидал, что он вернет 0, а не ошибку.

Комментарии:

1. есть ли у вас метод с именем _addFromInteger? потому что я запустил ваш код и его работу

2. @merym нет, я не знаю, я предположил, что это что-то встроенное в dart / flutter, которое используется в . метод fold

3. _addfromInteger это внутренний метод, который является реализацией для сложения целых чисел. Если вы получаете эту ошибку, один из product объектов в wastedProducts имеет значение null amountWasted .

4. Черт возьми, только что понял, что я не обновил поток, чтобы предоставить атрибут amountWasted. Внес в него изменения, и теперь он работает. Спасибо за помощь, подтверждающую, что вышеуказанное действительно было правильным