前言
Flutter通过不重复的Key作为唯一标识,来保存组件的状态和顺序
LocalKey局部键
ValueKey
<key>
:自定义字符串作为标识
1
| Box(key: ValueKey("<key>"));
|
UniqueKey
ObjectKey
<obj>
:任意对象
1
| Box(key: ObjectKey(<obj>));
|
GlobalKey全局键
定义全局Key
1
| GlobalKey globalKey = GlobalKey();
|
使用全局Key
获取子组件的State
1
| var boxState = globalKey.currentState as BoxState;
|
获取子组件State的属性值
修改子组件State的属性值
调用子组件State的方法
1
| var boxWidget = globalKey.currentWidget as Box;
|
获取子组件的Context
1
| var renderBox = globalKey.currentContext!.findRenderObject() as RenderBox;
|
获取子组件Context的属性
完成
参考文献
哔哩哔哩——筱筱知晓