新手,无法理解这些代码

时间:2019-10-06 03:41:51

标签: flutter flutter-layout

我是代码方面的新手,我尝试自己学习波动,它可以很好地与UI结合使用,直到遇到此代码为止,我知道它可以从数据库中打印BannerList,并且它可以正常工作,但是我似乎无法了解它。有人可以详细向我解释一下。还有一件事,如何将这个BannerList发送到具有最多6个横幅的列表视图,并按新横幅排序。

class BannerAPI {

  BannerAPI(this._api);
  API _api;

  Future<BannerList> getList(
    {Map<String, String> body = const {'offset': '', 'limit': ''}}) async    {  

    String path = '/_api/banner/get_banner_list';
    ApiResponse apiResponse = await _api.post(path, body: {...body});

    if (apiResponse != null && apiResponse.status == 200) {

      //apiResponse.data return "user_api"
      BannerList list = BannerList.fromJson(apiResponse.data);
      print(list.toJson());
      return list;
    } else {
      return null;
    }
  }
}

这是BannerModel的代码

    @JsonSerializable()
class EBanner {
  EBanner({
    this.id,
    this.name,
    this.img_src,
    this.create_time_mi,
  });

  factory EBanner.fromJson(Map<String, dynamic> json) =>
      _$EBannerFromJson(json);

  @JsonKey(name: '_id')
  final String id;
  final String name;
  final String img_src;
  final String create_time_mi;

  Map<String, dynamic> toJson() => _$EBannerToJson(this);
}

class BannerList {
  BannerList({this.list});

  BannerList.fromJson(List<dynamic> json) {
    this.list = json.map((banner) => EBanner.fromJson(banner)).toList();
  }

  List<EBanner> list = [];

  List<dynamic> toJson() {
    return this.list.map((banner) => banner.toJson()).toList();
  }
}

0 个答案:

没有答案