Проблема в том, что вы возвращаете данные другого типа через этот
// this is a json decoded data, not String
return json.decode(response.body);
и упоминаете тип возвращаемых данных String в вашем Generi c Тип данных для you Future
Future<String> AfficherEtablissement() async {}
Попробуйте объявить правильный тип данных для вашего метода AfficherEtablissement()
.
Предложение: Используйте имя вашего метода как camelCase
. Хорошая практика дротиков, вы можете узнать больше о руководствах по дротикам здесь: Эффективный дротик
// return the dynamic data type
Future<dynamic> AfficherEtablissement() async {
final response =
await http.get('http://10.0.2.2:8080/api/getetab');
if (response.statusCode == 200) {
return json.decode(response.body);
} else {
throw Exception('Failed to load');
}
}
И когда вы извлекаете данные или распечатываете данные, вы должны изменить его на String с помощью toString()
, поскольку вы получаете тип данных Dynami c, но при печати он требует String
etabController.AfficherEtablissement().then((value) => {
print("Fetched values: "+value.toString());
});