RangeError (index): недопустимое значение: не в диапазоне 0..7 включительно: 8 - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь отобразить все значения, полученные из запроса API.

Вот что он показывает в данный момент:

text

I ' используя построитель списка для страницы. JSON можно получить по этой ссылке: Здесь

Это весь мой код для страницы: Код

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Ошибка в вашем ListViewBuilder:

ListView.builder(
  scrollDirection: Axis.vertical,
  shrinkWrap: true,
  itemCount: _ListFamilyPageState.data.body.family.length,
  itemBuilder: (context, index) {
    return Container(
        height: 74.0,
        decoration: BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.only(
              topRight: const Radius.circular(20.0),
              bottomRight: const Radius.circular(20.0)),
        ),
        width: MediaQuery.of(context).size.width - 50.0,
        child: Center(
            child: Text(
              data.body.friends[index].id.toString(),
              style:
              TextStyle(fontSize: 24.0),
            )));
  },
)

Вы указали, что есть family.length элементов (в ваших данных: 15), но вы извлекаете фактические данные из friends[index] (8 элементов в ваши данные).

Это дает вам RangeError при отображении элемента с индексом 8.

Кроме того: вы используете данные stati c в своем состоянии:

class _ListFamilyPageState extends State<ListFamily> {
  static Relations data;
  // ...
}

Не делай этого.

1 голос
/ 25 марта 2020

Вы установили атрибут itemCount объекта ListView с помощью _ListFamilyPageState.data.body.family.length, и вы используете индекс его построителя с другим списком data.body.friends [index] .id.toString ()

Не думаю, что у обоих одинаковое количество элементов

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