Получение RangeError (индекс): Недопустимое значение: Допустимый диапазон значений пуст: 0

Я совершенно новичок в трепыхании. Я получаю этот код ошибки снова и снова, и я не знаю, что я делаю false Я надеюсь, что кто-то может помочь мне с моим самым первым вопросом Я не долго занимаюсь кодированием, например, 2 месяца

Имя файла: Home_screen.dart

import 'dart:async';
import 'dart:convert';
import 'dart:math';

import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'package:liquid_pull_to_refresh/liquid_pull_to_refresh.dart';
import 'package:mood_calendar/components/box.dart';

import '../list_data/quotes_.dart';

class HomePage extends StatefulWidget {
  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int _selectedIndex = 0;
  late final List<Content> _content = [];

  Future<void> _handleOnRefresh() async {
    fetchJson(Random).then((value) {
      setState(() {
        _content.addAll(value);
        _content.shuffle();
      });
    });
  }

  Future<List<Content>> fetchJson(jsondata) async {
    var reponse =
        await http.get(Uri.parse('https://www.jsonkeeper.com/b/4DEZ'));
    //!Api for the json text

    late List<Content> ulist = [];

    if (reponse.statusCode == 200) {
      var urjson = json.decode(reponse.body);

      for (var jsondata in urjson) {
        ulist.add(Content.fromJson(jsondata));
      }
    }
    return ulist;
  }

  @override
  void initState() {
    fetchJson(context).then((value) {
      setState(() {
        _content.addAll(value);
        _content.shuffle();
      });
    });
    super.initState();
  }

  Widget build(BuildContext context) {
    return Scaffold(
        body: Padding(
            padding: const EdgeInsets.only(top: 8),
            child: LiquidPullToRefresh(
                backgroundColor:
                    Colors.deepPurple.shade700.withBlue(255).withOpacity(0.4),
                color: Colors.transparent,
                height: 150,
                onRefresh: _handleOnRefresh,
                showChildOpacityTransition: false,
                animSpeedFactor: 4,
                child: Padding(
                    padding: EdgeInsets.only(top: 40),
                    child: SafeArea(
                      child: ListView.builder(
                        itemBuilder: ((context, index) {
                          return (Box(
                            text: _content[index].quote.toString(),
                          ));
                        }),
                        itemCount: 10,
                      ),
                    )))));
  }
}

имя файла в кавычках.dart

import 'dart:convert';

class Content {
  Content({
    required this.id,
    required this.quote,
    required this.author,
  });

  String id;
  String quote;
  String author;

  factory Content.fromJson(Map<String, dynamic> json) => Content(
        id: json["id"],
        quote: json["quote"],
        author: json["author"],
      );

  Map<String, dynamic> toJson() => {
        "id": id,
        "quote": quote,
        "author": author,
      };
}

class EnumValues<T> {
  late Map<String, T> map;
  late Map<T, String> reverseMap;

  Map<T, String> get reverse {
    if (reverseMap == null) {
      reverseMap = map.map((k, v) => new MapEntry(v, k));
    }
    return reverseMap;
  }
}

я хочу установить количество элементов равным 10, чтобы отображать только 10 цитат, это работает, но теперь у меня есть эта ошибка

Получение RangeError (индекс): Недопустимое значение: Допустимый диапазон значений пуст: 0

это отвечает на ваш вопрос

Yeasin Sheikh 19.11.2022 20:22
Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
0
1
276
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для получения данных потребуется некоторое количество кадров. Вместо того, чтобы предоставлять жестко запрограммированный itemCount: 10,

предоставлять

 ListView.builder(
   itemCount: _content.length,

Чтобы получить 10 предметов, используйте _content.length>=10?10:_content.length.

Также использование FutureBuilder будет хорошим выбором.

Да, это было раньше, но потом у меня было около 20 000 цитат, потому что я сохранил их все на jsonkepeer.com, но я хочу отображать только 10 каждый раз, когда я обновляю или загружаю

jll115 19.11.2022 21:04

хорошо, дайте _content.length>=10?10:_content.length

Yeasin Sheikh 20.11.2022 06:35

Другие вопросы по теме