#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
имеет значение nullamountWasted
.4. Черт возьми, только что понял, что я не обновил поток, чтобы предоставить атрибут amountWasted. Внес в него изменения, и теперь он работает. Спасибо за помощь, подтверждающую, что вышеуказанное действительно было правильным