#flutter #dart #datatable #row
Вопрос:
Я получаю эту ошибку и ищу ответ. Прямо ниже приведен мой код, и когда я удаляю строку, она показывает неправильное количество товаров и цену товара в текстовом поле таблицы, даже исходные данные работают правильно, например, находят сумму количества или общую цену товаров.
Вот мой код для редактирования таблицы.
Iterable<DataRow> dataRows = items.map((item) {
return DataRow(
selected: selectedItems.contains(item),
onSelectChanged: (b) {
print("OnSelect");
onSelectedRow(b!, item);
},
cells: [
DataCell(
Text(item.itemName),
),
DataCell(
TextFormField(
initialValue: item.itemQty.toString(),
onFieldSubmitted: (valueToo) {
int x1 = int.parse(valueToo);
item.itemQty = x1;
total = 0;
sum();
},
),
showEditIcon: true),
DataCell(
TextFormField(
initialValue: item.itemPrice.toString(),
onFieldSubmitted: (valueUne) {
int z1 = int.parse(valueUne);
item.itemPrice = z1;
total = 0;
sum();
},
),
showEditIcon: true),
]);
}).toList();
return dataRows;
}
Это мои функции
onSelectedRow(bool selected, Item item) async {
setState(() {
if (selected) {
selectedItems.add(item);
} else {
selectedItems.remove(item);
}
});
}
onSortColum(int columnIndex, bool ascending) {
if (columnIndex == 0) {
if (ascending) {
items.sort((a, b) => a.itemName.compareTo(b.itemName));
} else {
items.sort((a, b) => b.itemName.compareTo(a.itemName));
}
}
}
deleteSelected() async {
setState(() {
if (selectedItems.isNotEmpty) {
List<Item> temp = [];
temp.addAll(selectedItems);
for (Item item in temp) {
items.remove(item);
selectedItems.remove(item);
}
}
total = 0;
une1 = total.toString();
sum();
});
}
sum() async {
setState(() {
niilber = items.fold(
0,
(itemPrice, element) =>
itemPrice element.itemPrice * element.itemQty);
shirheg = items.fold(0, (itemQty, element) => itemQty element.itemQty);
too1 = shirheg.toString();
une1 = niilber.toString();
_itemController.clear();
_qtyController.clear();
_priceController.clear();
});
}
Спасибо вам за ваше время и надеюсь, что вы поможете мне разобраться в этом.