Я пытаюсь получить данные с сервера Laravel php и показать их на экране входа в систему Flutter, который после успешного входа в систему перенаправляет на панель управления, но данные не отображаются, и на экране продолжает загружаться только значок загрузки. *
Вот код входа в систему:
class DashboardState extends State<Dashboard>{
DataBaseHelper dataBaseHelper = new DataBaseHelper();
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
title: 'Dashboard',
home: Scaffold(
appBar: AppBar(
title: Text('Dashboard'),
),
floatingActionButton: FloatingActionButton(
onPressed: ()=>
Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context)=> new AddData(),
))
,
child: Icon(Icons.add),
),
body: Container(
child: FutureBuilder<List>(
future: dataBaseHelper.getData(),
builder: (context, snapshot){
if(snapshot.hasError) print(snapshot.error);
return snapshot.hasData
? new ItemList(list: snapshot.data)
: new Center(child: CircularProgressIndicator(),);
},
)
),
),
);
}
}
А вот функция getData (), которая получает данные с сервера и находится в databasehelper:
Future<List> getData() async{
final prefs = await SharedPreferences.getInstance();
final key = 'token';
final value = prefs.get(key) ?? 0;
var url = '$serverUrl/cars/';
final response = await http.get(url,
headers: {
'Accept':'application/json',
'Authorization' : 'Bearer $value'
},
);
return json.decode(response.body);
}
Примечание. Я получаю следующее сообщение на консоли, когда пользователь вошел в систему и go на панели управления:
I/flutter ( 9962): type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List<dynamic>>'