Почему функциональная карта возвращает null (нулевая безопасность?)

ошибка (Метод «карта» не может быть вызван безусловно, потому что получатель может быть «нулевым». Создание условного вызова (используя '?') или добавление нулевой проверки к цели ('!).)

Future<Post> fetchPhotos() async {
  http.Response res =await http.get(Uri.https('jsonplaceholder.typicode.com', 'posts/2'));
  if (res.statusCode == 200) {
      String data = res.body;
      var jsonData = jsonDecode(data); 
      Posts posts = Posts.fromJson(jsonData);
      List<Post> pList = posts.postList.map((e) => Post.fromJson(e)).toList();//
      return posts;
  } else {
      throw Exception("faild to load photos");
  }
}

Модель

import 'package:flutter/foundation.dart';

class Post {
final int? userId;
final int? id;
final String? title;
final String? body;
Post({
  @required this.userId,
  @required this.id,
  @required this.title,
  @required this.body,
});

factory Post.fromJson(Map<String, dynamic> jsonData) {
  return Post(
    userId: jsonData["userId"],
    id: jsonData["id"],
    title: jsonData["title"],
    body: jsonData["body"]);
 }
}

class Posts {
  late final List<dynamic>? postList;
  Posts({this.postList});
  factory Posts.fromJson(Map<String, dynamic> jsonData) {
  return Posts(
  postList: jsonData['postList'],
);

} }

у ваших данных API нет postList.

ישו אוהב אותך 17.03.2022 16:53
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
1
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

добавить ! в postList, например: posts.postList!.map

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