Ошибка: E / flutter (8247): NoSuchMethodError: получатель 'length' был вызван при нулевом значении

Я получаю эту ошибку всякий раз, когда запускаю свое приложение Flutter:

E / flutter (8247): NoSuchMethodError: метод add был вызван для null.

class _HomePageState extends State<HomePage> {


  List responseJson;
  List EventDetails ;

  Future<String> fetchPost() async {
    final response = await http.get(
        "https://....",
        headers: {
          HttpHeaders.AUTHORIZATION:
          "Bearer .."
              });

    for(var i = 0; i< (responseJson?.length ?? 0);i++) {
      print(responseJson[i]["id"]);


      final eventDetailsRepsonse = await http.get(
          "https:..." + responseJson[i]["id"].toString(),
          headers: {
            HttpHeaders.AUTHORIZATION:
            "Bearer .."
});

        EventDetails.add(json.decode(eventDetailsRepsonse.body));

      EventDetails = responseJson;
    }

    //print(response.body);
this.setState(() {
  responseJson = json.decode(response.body);
  print(response.body);
  print(responseJson);

});
//    data = JSON.decode(response.body);
    print(responseJson[1]["code"]);
    print(responseJson[1]["event_banner"]);

    //return new Post.fromJson(responseJson);

  }

Есть идеи, как это решить?

Какой код у package:loginapp/myevents.dart:54:35. Это похоже на проблему в вашем коде. Нам нужно увидеть код, чтобы иметь возможность диагностировать.

Günter Zöchbauer 18.05.2018 16:44

Я отредактировал текст выше, пожалуйста, посмотрите его, спасибо!

heyr 18.05.2018 16:51

Ваш список не инициализирован?

Shady Aziza 18.05.2018 16:53

Какая строка вызывает эту ошибку? Попробуйте List EventDetails = []; вместо List EventDetails ;

Günter Zöchbauer 18.05.2018 17:42

Большое спасибо! Кажется, теперь работает!

heyr 18.05.2018 18:01
2
5
2 148
1

Ответы 1

responseJson еще не инициализирован, когда

for(var i = 0; i<responseJson.length;i++) {

выполняется.

Изменив его на

for(var i = 0; i< (responseJson?.length ?? 0);i++) {

может это исправить.

Спасибо за совет, но теперь я получаю: метод add был вызван для null.

heyr 18.05.2018 17:08

Мне нужно больше подробностей. Кажется, это другая проблема.

Günter Zöchbauer 18.05.2018 17:29

Конечно. Я обновил поле выше, большое спасибо за ваше время.

heyr 18.05.2018 17:40

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

Günter Zöchbauer 18.05.2018 18:38

Привет, Гюнтер! По какой-то причине я все еще получаю: [ERROR: topaz / lib / tonic / logging / dart_error.cc (16)] Необработанное исключение: E / flutter (6323): RangeError (index): Invalid value: Valid value range is пусто: 1

heyr 18.05.2018 18:52

Какая линия? Вы получите эту информацию в случае ошибки, мне нужна эта информация. Если это responseJson[i], у меня нет способа сделать вывод, почему responseJson может быть пустым.

Günter Zöchbauer 18.05.2018 19:26

Очевидно, EventDetails пуст, поскольку я пытался распечатать его, и он дает мне [].

heyr 18.05.2018 21:39

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