Flatter-App mit Laden beim Abrufen der API
Nov 18 2020
Ich verwende eine API, die den Wert wie folgt zurückgibt.
[
{
"store": "AMAZON"
},
{
"store": "FLIPKART"
},
{
"store": "WALMART"
},
{
"store": "ALIBABA"
},
]
Ich brauche das, um in einem Dropdown zu sein. Ich benötige eine Dropdown-Schaltfläche mit diesen API-Daten. Jemand hilft bitte. Ich habe viele Möglichkeiten ausprobiert, aber nichts hat funktioniert.
Antworten
1 Jhakiz Nov 18 2020 at 20:33
Nigale Try Code:
List<String> markets = []; // Or var markets = [];
String _mySelection;
@override
void initState() {
buidDropDownItems();
super.initState();
}
//
void buidDropDownItems() async {
markets = await retrievedata.getMarket();
// Refresh the UI if the State object has been created
if(mounted){
setState(() {});
}
}
child: DropdownButton(
items: markets.map<DropdownMenuItem<String>>((String val){
return DropdownMenuItem<String>(value: val, child: Text(val));
}).toList(), // Get items from the available data in markets variable
onChanged: (sto) {
setState(() {
_mySelection = sto;
});
},
value: _mySelection,
hint: Text('Please select the store: '),
),
Die Funktion retrievedata.getMarket();kehrt zurück Future<dynamic>und dynamicist Ihre Marktliste.
AmrMo Nov 18 2020 at 19:49
Angenommen, dieses Array wird in einer Variablen namens abgerufen data
List<String>list=[];
for(var itemData in data){
list.add(itemData['store']);
}
Und wala, jetzt listKonationsarray von Stringgebrauchsfertig