Фильтр из списка

#flutter #dart

Вопрос:

Я хочу отфильтровать данные в flutter. Но когда я фильтрую данные, длина списка равна нулю. Я хочу фильтровать на основе множественного выбора пользователем. Вот мой код:

Статус списка = [ «Пн», «Вт», «Ср», «Чт», «Пт», ];

 Content(
          title: 'Filter Days',
          child: FormField<List<String>>(
            // ignore: deprecated_member_use
            autovalidate: true,
            initialValue: appsTags,
            builder: (state) {
              return Column(
                children: <Widget>[
                  Container(
                    alignment: Alignment.centerLeft,
                    child: ChipsChoice<String>.multiple(
                      value: state.value,
                      options: ChipsChoiceOption.listFrom<String,
                          String>(
                        source: status,
                        value: (i, v) => v,
                        label: (i, v) => v,
                      ),
                      onChanged: (val) {
                        state.didChange(val);
                        if (this.mounted) {
                          setState(() {
                            list = apps
                                .where((i) => i['status'] == val
                            ).toList();
                          });
                        }
                        print(list.length);
                      },
                      itemConfig: ChipsChoiceItemConfig(
                        selectedColor: AppColors.primaryAccentColor,
                        selectedBrightness: Brightness.dark,
                        unselectedColor:
                        AppColors.primaryAccentColor,
                        unselectedBorderOpacity: .3,
                      ),
                      isWrapped: true,
                    ),
                  ),
                ],
              );
            },
          ),
        ),
 

Комментарии:

1. всем привет. Вместо публикации полного кода добавьте только минимальный воспроизводимый образец, содержащий исходный список, способ фильтрации, его выходные данные и то, что вы ожидали.

2. @NisanthReddy Хорошо, я переоденусь

3. Я полагаю, вы имеете в виду линию list = apps.where(...) . В чем заключается содержание apps ?

4. Да, верно @Gpack

Ответ №1:

Я только что изменил содержимое метода OnChanged() :

                              setState(() {
                                list = apps
                                    .where((i) =>
                                    val.contains(i['status'])
                                ).toList();
                              });