Flutter - нет ошибки получения экземпляра 'lenght' - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь заполнить свой список Json данными, полученными из API c publi, но когда я пытаюсь запустить код, я получаю следующие ошибки. Я попытался получить доступ к другому URL-адресу с другим набором данных json, но все еще получаю ту же ошибку.

Класс List не имеет экземпляра получателя 'lenght'. Получатель: Экземпляр (длина: 248) из '_GrowableList' Пробовал позвонить: lenght

Вот мой код

class CountryCase {
  String country;
  String slug;
  String iso;


  CountryCase (this.country, this.slug, this.iso);


  CountryCase.json(Map<String, dynamic> json) {
    country = json['Country'];
    slug = json['Slug'];
    iso = json['ISO2'];
  }
}

class CountryScreen extends StatefulWidget {
  CountryScreen({Key key}) : super(key: key);

  @override
  _CountryScreenState createState() => _CountryScreenState();
}

class _CountryScreenState extends State<CountryScreen> {
  Future<List<CountryCase>> fetchInfo() async {
    var apiUrl = 'https://api.covid19api.com/countries';
    var result = await http.get(apiUrl);

    var users = List<CountryCase>();

    if (result.statusCode == 200) {
      var usersJson = json.decode(result.body);
      for (var user in usersJson) {
        users.add(CountryCase.json(user));
      }
    }
    return users;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      bottomNavigationBar: BottomNavBar(),
      body: Container(
          child: FutureBuilder<List<dynamic>>(
            future: fetchInfo(),
            builder: (BuildContext context, AsyncSnapshot snapshot) {
              if (snapshot.data == null) {
                return Container(
                  child: Center(
                    child: Text('Loading Data...'),
                  ),
                );
              } else {
                return ListView.builder(
                  itemCount: snapshot.data == null ? 0 : snapshot.data.lenght,
                  itemBuilder: (BuildContext context, int index) {
                    return ListTile(
                      title: Text(snapshot.data[index].contry),
                    );
                  },
                );
              }
            },
          )),
    );
  }
}

1 Ответ

1 голос
/ 26 мая 2020

Это length, а не lenght, вы допустили опечатку

Попробуйте использовать автозаполнение в подобных случаях, так как оно предложит доступные варианты для вашего кода.

...