https://flutter.dev/docs/cookbook/forms/validation
GlobalKey他们在那里使用了 a Form。
从这里: https: //api.flutter.dev/flutter/widgets/GlobalKey-class.html
全局键唯一标识元素。全局键提供对与这些元素关联的其他对象的访问,例如 BuildContext。对于 StatefulWidgets,全局键还提供对 State 的访问。
当具有全局键的小部件从树中的一个位置移动到树中的另一位置时,它们会重新设置其子树的父级。为了重新设置其子树的父级,小部件必须在其从树中旧位置删除的同一动画帧中到达其在树中的新位置。
使用全局键重新设置元素的父级相对昂贵,因为此操作将触发对关联 State 及其所有后代的 State.deactivate 调用;然后强制重建所有依赖于 InheritedWidget 的小部件。
如果您不需要上面列出的任何功能,请考虑使用 Key、ValueKey、ObjectKey 或 UniqueKey。
该表单中使用了上述引用中的哪个功能,因此它需要一个GlobalKey?
为什么那里需要 GlobalKey,为什么其他密钥不起作用?
小智 5
我认为使用的重要功能GlobalKey是formKey.currentState.validate()验证TextFormField该 中所有小部件的方法Form。因为GlobalKey可以访问 的当前状态FormState。
在其他密钥类型中,例如ValueKey无法访问 的当前状态FormState。
| 归档时间: |
|
| 查看次数: |
2919 次 |
| 最近记录: |