#flutter #dictionary
#flutter #словарь
Вопрос:
Я использую map для итерации элементов на нем следующим образом,
...eventModifierProvider.selectedEvents.map((EventStore ) {
return Dismissible(
key: UniqueKey(),
onDismissed: (direction) {
eventModifierProvider.events.remove( what should be here?);
},
background: Container(
alignment: Alignment.centerRight,
child: Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 20, 0),
child: Icon(Icons.close, size: 25, color: Colors.white),
),
decoration: BoxDecoration(color: Colors.redAccent)
),
child: Column(
children: [
TimeAndDuration(
time: "09:12",
amPm: "AM",
duration: "1 Hour 3 min",
),
ParticularDateEvent(
lectureSubject: EventStore.subject.toString(),
lectureStandard: EventStore.level.toString(),
lectureRoom: EventStore.room.toString(),
),
],
),
);
}),
В selectedEvents map
есть ключ DateTime
, а значения хранятся в EventStore
списке.
Теперь я также использую Dismissible
виджет для удаления элемента с карты.
Как я могу это сделать здесь? Помогите мне
Ответ №1:
Вам нужно получить индекс следующим образом:
int index = eventModifierProvider.selectedEvents.indexOf(e);
Добавьте ключ
Key(index)
Удалите его с помощью индекса
RemoveAt(index)
Я надеюсь, что это полезно
Комментарии:
1. спасибо за ваше время, куда я должен добавить этот int index = eventModifierProvider.selectedEvents.indexOf(e); внутри недопустимо или снаружи?
2. Вы должны добавить это прямо перед
return
утверждением.