#flutter #dart
Вопрос:
Я получаю данные json по API и декодирую их в Map<String,dynamic>
Future fetchMix() async {
final response = await http.get(Uri.http('localhost:8008', 'api/mixs'));
if (response.statusCode == 200) {
Map<String, dynamic> json = jsonDecode(response.body);
print (json['items'][0]) // OK, it correctly shows the data
return json['items'];
} else {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception('Failed to load API');
}
}
затем позвоните fetchMix
initState
и введите данные в mixItems
class _MyHomePageState extends State<MyHomePage> {
Future<dynamic> mixItems;
@override
void initState() {
super.initState();
mixItems = fetchMix();
}
затем используйте это, FutureBuilder
но это не работает.
child: FutureBuilder<dynamic>(
future: mixItems,
builder: (context, snapshot) {
if (snapshot.hasData) {
print("snapshot has arrived!");
print(mixItems);
print(mixItems[0]);// it shows error.
return Text(mixItems[0]);
}
return CircularProgressIndicator();
},
)
Однако печать(mixItems[0]) показывает ошибку
lib/main.dart:115:29: Ошибка: Оператор «[] «не определен для класса «Будущее».
Как я могу это исправить??
Комментарии:
1. Преобразуйте свой json в список объектов