как удалить список элементов, используя всплывающее меню - флаттер

Lookbehinds на debuggex (PCRE, Javascript и Python) не может быть переменной ширины, что означает, что вы можете использовать (?<=<a>), который имеет фиксированную ширину (3 символа), но не то, что может меняться по длине (?<=<a.*>) (может иметь 3 символа, или 4, или 5 и т. Д.).

Регулярное выражение просто неверно, но debuggex сообщает вам, что совпадения нет.

1
задан irongirl 5 March 2019 в 07:38
поделиться

1 ответ

Добавьте функцию обратного вызова в свой класс PopUpMenu:

class PopUpMenu extends StatelessWidget {
  VoidCallback onDelete;

  PopUpMenu({this.onDelete});

  void showMenuSelection(String value) {
    switch (value) {
      case 'Delete':
        onDelete();
        break;
      // Other cases for other menu options
    }
  }

Затем при создании в исходном классе:

         ...
                trailing: PopUpMenu(
                  onDelete: () {
                    levelsData.removeWhere((element) => element == element);
                  }
                )));
          }

Общее правило во Флаттере - передать обратный вызов для детей, а не пытаться получить доступ к данным в родителе.

Вам также может понадобиться сделать StuffInTiles виджет с состоянием и добавить setState(() {}); к onDelete, так как простое удаление значения фактически не обновит ваше представление новым списком.

0
ответ дан greyaurora 5 March 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: