В flutter есть ли способ программно задать начальное значение в CountryPickerDropdown?

#flutter #dart

Вопрос:

Я пытаюсь установить начальное значение в countrypickerdropdown программно, но не могу этого сделать, так как вместо моего программного значения задается значение INIT («us»). Фрагмент выглядит следующим образом

 child: CountryPickerDropdown(
                          initialValue: countryCode?? 'us',
                          itemBuilder: _buildDropdownItem,
                          onValuePicked: (Country country) {
                            setState(() {
                              countryName = country.name;
                              print("${country.name}");
                              intlPhoneCode = country.phoneCode;
                              print("${intlPhoneCode}");
                              countryCode = country.isoCode;
                              phoneIsVerified = false;
                            });
                          }
 

Значение кода страны было получено из вызова api следующим образом:

 Future<void> getProfile(String id) async {

    try{
      profile = await apiService.getProfile(id);

      countryCode = profile['countryCode'];
    }catch(ex){ 
         ...
    }
}
 

Я даже не мог этого сделать в штате.

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

1. пробовать setState(() { countryCode = profile['countryCode']; });

2. Это не сработало. Когда они прокалывают исходный код, значение INITIAL использовалось в их исходном состоянии, возможно, это может привести к решению.

3. Попробуйте распечатать Country свои журналы onValuePicked в формате JSON, а затем создайте Country объект и передайте значения по умолчанию, которые вы напечатали Country в нужном состоянии initState. Затем установите этот объект как initialValue . Это решит вашу проблему.