тип будущего не является подтипом ошибки списка во флаттере - PullRequest
0 голосов
/ 03 мая 2020

Определение моей функции ниже

Future<List<Item>> fetchGitUsers() async {
final response = await http.get('https://');

if (response.statusCode == 200) {
  GitUsers gitUser =  GitUsers.fromJson(json.decode(response.body));
  return gitUser.items;
 } 

} / Конец функции

class GitUsers {
    List<Item> items;
 }


class ... extends State<SearchController> {

@override
  void initState() {
    super.initState();
    gitUsers = fetchGitUsers() as List<Item>;
  }
}

Но я получаю ошибку ниже на экране эмулятора ..

image> is not subtype of List"> в типе Cast.

1 Ответ

0 голосов
/ 03 мая 2020

Вы не добавили await

Попробуйте это

void getUsers() async{
   gitUsers = await fetchGitUsers();
}

@override
  void initState() {
    super.initState();
    getUsers();
  }
}

Если вы хотите использовать git пользователей в пользовательском интерфейсе (например, ListView), рассмотрите возможность использования FutureBuilder.

Как это

FutureBuilder(
  future: fetchGitUsers(),
  builder: (context, snapshot){
    if(!snapshot.hasData) return CircularProgressIndicator();

    return ListView();
  }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...