在 Dart 中将对象推入数组

hey*_*red 9 dart flutter

  List returnMovies = [];

Future<List> _getData() async {

    final response = await http.get("https:../getTodayMovies",
        headers: {HttpHeaders.AUTHORIZATION: Acess_Token.access_token});


    if (response.body != null) {
    returnMovies = json.decode(response.body);
      .....

      setState(() {});
    } else {
       final responseUpcoming = await http.get("/upcoming",
        headers: {HttpHeaders.AUTHORIZATION: Acess_Token.access_token});
        returnMovies = json.decode(responseUpcoming.body);


    }
Run Code Online (Sandbox Code Playgroud)

response.body 看起来像:

[{"id":394470548,"host_group_name":"heyab redda","movie_image":"..png","type":"horror","code":"X123","name":"Lovely","start_time":1554364800,"end_time":1554393600,"}]
Run Code Online (Sandbox Code Playgroud)

responseUpcoming.body 看起来像:

 {"id":394470545,"host_group_name":"foo redda","movie_image":".png","type":"horror","code":"X123","name":"Lovely","start_time":1554364800,"end_time":1554393600,"}, {"id":394470548,"host_group_name":"foo1 redda","movie_image":"..png","type":"comic","code":"X125","name":"Lovely1","start_time":1554364800,"end_time":1554393600,"}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是: String, dynamic is not a subtype of type List<dynamic>

在我执行的第一个 API 调用中,我通常会返回一个对象数组,但是,当它为空时,第二个 API 调用会返回一个我想推入名为 returnMovies 的数组中的对象列表,我该如何实现这个??有没有办法将这些对象推送到数组中??那么我想使用这个数组来动态构建一个 Listview.builder。我声明的方式是否正确?我对 Dart 很陌生。谢谢

Gün*_*uer 7

听起来你正在寻找 addAll

returnMovies.addAll(json.decode(returnUpcoming.body))
Run Code Online (Sandbox Code Playgroud)


Moh*_*dri 5

我会建议使用

returnMovies.addAll({your object here})
Run Code Online (Sandbox Code Playgroud)