实例创建后如何访问类方法?

时间:2019-08-23 13:35:20

标签: flutter dart

当我尝试访问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请求的情况下打电话,也没有错误。

我在这里想念什么?

0 个答案:

没有答案