我想知道在setState不为变量设置新值的情况下进行调用的要点。
setState
readLocal() async { prefs = await SharedPreferences.getInstance(); id = prefs.getString('id') ?? ''; if (id.hashCode <= peerId.hashCode) { groupChatId = '$id-$peerId'; } else { groupChatId = '$peerId-$id'; } setState(() {}); }
我要说这只是一个 约定 。上面可以改写成
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(() {})
state variable
按照的实现部分setState,它会按顺序排列在下面。
final dynamic result = fn() as dynamic;
_element.markNeedsBuild();