一尘不染

空置状态有什么意义?

flutter

我想知道在setState不为变量设置新值的情况下进行调用的要点。

  readLocal() async {
    prefs = await SharedPreferences.getInstance();
    id = prefs.getString('id') ?? '';
    if (id.hashCode <= peerId.hashCode) {
      groupChatId = '$id-$peerId';
    } else {
      groupChatId = '$peerId-$id';
    }

    setState(() {});
  }

阅读 353

收藏
2020-08-13

共1个答案

一尘不染

我要说这只是一个 约定 。上面可以改写成

readLocal() async {
  prefs = await SharedPreferences.getInstance();
  setState(() {
    id = prefs.getString('id') ?? '';
    if (id.hashCode <= peerId.hashCode) {
      groupChatId = '$id-$peerId';
    } else {
     groupChatId = '$peerId-$id';
   }
  });
}

两者都会做同样的事情。setState(() {})使state variable外观看起来整洁可口后调用。

按照的实现部分setState,它会按顺序排列在下面。

  1. 断言。如果任何断言失败,则引发异常并在那里停止。
  2. 执行 回调函数final dynamic result = fn() as dynamic;
  3. 要求框架 重建_element.markNeedsBuild();
2020-08-13