Здравствуйте, у меня возникла проблема, чтобы понять, как управлять свойствами класса, когда он является частью списка классов
Вот мои классы
class BasketItem {
final String itemDescription;
final String itemNote;
BasketItem(
{this.itemDescription,
this.itemNote});
}
class AppData {
static final AppData _appData = new AppData._internal();
List<BasketItem> basketList = [];
factory AppData() {
return _appData;
}
AppData._internal();
}
final appData = AppData();
А вот мой Список
List<Container> _buildBasketList() {
return appData.basketList.map((bList) {
var container = Container(
child: Builder(
builder: (context) => Dismissible(
key: Key(UniqueKey().toString()),
background: Container(
margin: EdgeInsets.all(8.0),
color: kColorAccent,
child: Align(
alignment: Alignment(-0.90, 0.00),
child: Icon(Icons.add_comment)),
),
onDismissed: (direction) {
final newItemToAdd = BasketItem(
itemDescription: bList.itemDescription,
itemNote: 'xxxxx',);
appData.basketList.add(newItemToAdd);
setState(() {});
appData.basketList.remove(bList);
},
child: Stack(...)
),
),
);
return container;
}).toList();
}
Я хотел бы сделать следующее: когда исполняется onDismissed
, я хотел бы изменить свойство itemNote
на 'xxxxx'.Как я могу это сделать?На данный момент я удаляю BasketItem, который я провел, и создаю новый BasketItem, и я добавляю его в список.Проблема в том, что это не кажется эффективным, и это также добавляет элемент в конец списка, в то время как я хотел бы сохранить его в той же позиции / индекса, где он был.
Спасибо