Как удалить текущий элемент индекса с карты в flutter?

#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 утверждением.