当我尝试访问toJson()
时,我得到Object.noSuchMethod
。
这是我的关注班:
class MyClass {
int offset;
String tag;
MyClass(
{offset,
tag}) {
this.offset = offset;
this.tag = tag;
}
Map<String, dynamic> toJson() {
var args = {
'offset': offset > 0 ? offset.toString() : null,
'tag': tag,
};
args.removeWhere((key, value) => value == null);
return args;
}
}
我也有一个服务班
class MyClasService {
static Future<List<Something>> getAll([MyClass args]) async {
try {
Iterable res = await HttpService.get('posts', args.toJson());
// Iterable res = await HttpService.get('posts');
return res.map((model) => Post.fromJson(model)).toList();
} catch (e) {
return [];
}
}
}
和服务电话
PagewiseListView(
pageSize: PAGE_SIZE,
itemBuilder: (context, Post item, _) => MyComponent(item: item),
pageFuture: (pageIndex) => MyClassService.getAll(
new MyClass(page: pageIndex * PAGE_SIZE, perPage: PAGE_SIZE)));
当我尝试致电args.toJson()
时,我遇到了异常。
NoSuchMethodError(NoSuchMethodError:方法'>'被调用 null。\ n接收者:null \ n尝试调用:>(0))
但是,如果我只是打电话给Iterable res = await HttpService.get('posts');
,就可以了。
我认为问题出在我的(new MyClass()).toJson()
上,但是如果我仅在删除http请求的情况下打电话,也没有错误。
我在这里想念什么?