11.有状态Widget初始化重写&链式调用&排序

前言

前文我们通过联系人页面聊到了断言的使用,本文将继续结合该场景了机更多 Flutter 开发小技巧。

初始化方法重写

对于一个 StatefulWidget 我们如果需要在其初始化的时候进行一些操作的话,可以通过重写 initState() 来达到效果。

class _ContactsPageState extends State<ContactsPage> {

  @override
  void initState() {
    super.initState();

    // 添加数据
    _contacts
        .addAll(friendsData);

    _systems
        .addAll(friendsHeaderData);
  }

  ...
}

链式调用

iOS 开发中,比如使用 SnapKit 进行UI控件约束布局的时候,我们经常会用到这样的链式调用,非常爽。

其实在 Flutter 开发中我们也可以使用类似的写法:

排序

在上面可以看到 ..addAll(friendsData) 这样连续进行了调用。那么是否可以做的更多呢?

通常联系人列表我们会进行按字母排序,这里通过链式调用进行尝试:

和 Swift sort 的不同

这里你可能会发现,这里的 sort 函数和 Swift 的略有不同,内部回调的返回值不是 bool 而是 int

结合函数头文件注释我们可以了解更多:

简略写法

这里的排序函数可以在条件比较简单的情况下可以简写,提高编码效率

未简写

简写

头文件注释中有这样简写说明,平时多阅读注释,可以帮助我们写出更有语言特色风格的代码哦~

Last updated

Was this helpful?