我试着用Moviedb API从互联网上获取数据,我在https://flutter.io/cookbook/networking/fetch-data/的时候按照教程进行了操作

但是我得到了下面的错误.

无效参数:隔离消息中的非法参数:(对象是闭包-函数'createDataList':)

这是我的代码

Future<List<DataModel>> fetchData() async{
    final response = await http.get("https://api.themoviedb.org/3/movie/now_playing?api_key=d81172160acd9daaf6e477f2b306e423&language=en-US");

    if(response.statusCode == 200){

      return compute(createDataList,response.body.toString());
    }
  }

  List<DataModel> createDataList(String responFroJson) {
    final parse  = json.decode(responFroJson).cast<Map<String, dynamic>>();

    return parse.map<DataModel> ((json) => DataModel.fromtJson(json)).toList();
  }

错误消息的屏幕快照 enter image description here

推荐答案

只能带顶级函数,不能带实例或静电方法.

顶级函数是不在类内声明的函数 而不是在另一个函数内

List<DataModel> createDataList(String responFroJson) {
...
}

class SomeClass { ... }

你应该把它修好.

https://docs.flutter.io/flutter/foundation/compute.html

R是返回值的类型.回调参数必须是顶级函数,而不是闭包或类的实例或静态方法.

Flutter相关问答推荐

类型int不是可迭代动态tmdbapi类型的子类型<>

壁炉有序在Flutter

Android NFC未收到空的NFC标签

为什么Riverpod生成器在这种情况下不生成AsyncNotiator?

在Android Studio的新用户界面中未找到热重新加载

如何将Will POP示波器转换为POP数据抖动的POP示波器

与FTPS连接时出现Flutter FTPConnect HandshakeException错误

Firebase WHERE过滤器在日期字段中不起作用

如何画三角形的圆角?

火焰Flutter 在多个向量之间插补2

如何处理平台游戏的对象冲突?

flatter_localizations错误在Null值上使用了Null判断运算符

Flutter记录返回类型问题

有没有办法在 google_map 上移动标记(向左或向右移动一些像素)?

使用Flutter项目设置Firebase遇到困难?这些解决方案或许能帮到你!

Flutter / 为什么当我点击我的图片时我的模型没有更新?

MediaQuery 在不同手机上不一致

为什么 ref.watch(otherProvider.stream) 在 Riverpod 2.x 中被弃用并且将在 3.x 中被删除?

flutter - 无法解析 JSON 消息:文档为空

Positioned 的宽度或 SizedBox 的宽度都不适用于堆栈小部件 - Flutter