Флаттер: сохраненное событие не запускается после выбранного элемента в мультиселекте

#flutter #flutter-layout #flutter-dependencies

#трепетание #flutter-layout #flutter-зависимости

Вопрос:

Я использую Flutter Multiselect из official — flutter_multiselect: ^ 0.5.1 все работает нормально, но событие onSaved () не запускается после выбора / отмены выбора и нажатия кнопки сохранения в виджете MultiSelect. я просто хочу распечатать выбранный / отмененный элемент в консоли.

Примечание: я также пытаюсь получить событие через change (), оно работает, только если мы выбираем опцию, не работает при отмене выбора.

помогите мне решить эту проблему

Пример кода:

 Container(
  decoration: BoxDecoration(
    borderRadius: BorderRadius.circular(5.0),
  ),
  alignment: Alignment.center,
  child: new MultiSelect(
    maxLength: 1,
    maxLengthText: "",
    autovalidate: false,
    dataSource: countries,
    textField: 'country_name',
    valueField: 'country_id',
    hintText: "Select Your Country",
    initialValue: countryID,
    value: countryID,
    required: true,
    validator: (value) {
      if (value == null) {
        return 'Please Select Country';
      }
    },
    filterable: true,
    change: (values) {
      if (values != null) {
        setState(() {
          countryID = values.cast<String>();
          getStatesByCountry();
        });
      }
      //this event emitted while selecting option from multiselect
      //not works on deselecting option from multiselect
    },
    onSaved: (value) {
      debugPrint("on save event");
      print(value);
      //always not emitting
    },
    
  ),
)
 

Ответ №1:

Поскольку я не вижу весь код, трудно сказать, но я бы предположил, что вы не сохраняете всю форму таким образом:

 void _onFormSaved() {
    final FormState form = _formKey.currentState;
    form.save();
  } 
 

Я бы рекомендовал следовать этому оригинальному примеру

Надеюсь, это как-то поможет. Приветствия

Ответ №2:

я не знаю его правильного способа, но в моем случае просто очищенная сборка и переустановленный packge будут генерировать событие onchange при удалении элементов в multiselect, больше ничего не работает со мной