У меня есть файл JSON, и он содержит некоторую стоимость валюты. Я использую rootBundle.loadString для загрузки моих данных JSON.
Теперь мне нужно загрузить DropdownButton, используя мои jsonData. Текст DropdownButton должен отображать значение json, например «TRL». Но если я пытаюсь выбрать какой-либо пункт меню, мне нужно сохранить значение, например TRL_00. Моя выпадающая кнопка не работает в моем коде. Мой вопрос
Как загрузить файл типа json в выпадающий список DropdownButton?
эта часть не работает:
items: _mapCurrency((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
Файл моего сына:
{
"00": "TRL",
"01": "USD",
“02”: "GBP",
“03”: "EUR"
}
Загрузка JSON:
Map _mapCurrency;
String _currency;
String jsonCurrency =
await rootBundle.loadString("packages/currencies.json");
_mapCurrency = json.decode(jsonCurrency);
DropDown часть:
new FormField<String>(
builder: (FormFieldState<String> state) {
return InputDecorator(
decoration: InputDecoration(
labelText: ‘Currency’,
labelStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.green.shade700),
errorText: state.hasError ? state.errorText : null,
),
isEmpty: _currency == '',
child: new DropdownButtonHideUnderline(
child: new DropdownButton<String>(
style: TextStyle(
fontSize: 18.0,
color: Colors.black,
fontWeight: FontWeight.w500,
),
value: _currency,
isDense: true,
onChanged: (String newValue) {
setState(() {
_currency = newValue;
state.didChange(newValue);
});
},
items: _mapCurrency((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
),
),
);
},
validator: (val) {
return val != '' ? null : ‘Choose a Currency…’;
},
),