#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
. Это решит вашу проблему.