在许多文章中,问题和文档都写得很清楚:“如果不需要,请不要使用GlobalKeys”
Documentation的州If you don't need any of the features listed above, consider using a Key, ValueKey, ObjectKey, or UniqueKey instead.
但是不清楚引用哪些功能,其他键上的文档也没有说明其功能的扩展。
GlobalKeys是unique across the entire app
,因此需要通过整个应用程序访问所有Forms
吗?如果I need to access the context of and object to get its lay-ed out properties我只能使用GlobalKeys并将大量对象公开给整个应用程序?
因为
在 GlobalKey 文档上,访问 BuildContext 或 State 的需求为a feature listed above
,而 ObjectKey < / em>或 UniqueKey 是is not a GlobalKey
的 LocalKey类。
或者因为 key “仅仅是小部件的标识符”(我应该在头上将它们重命名为 WidgetID 吗?)。我可以在Forms上使用 LocalKey 而不是 GlobalKey ,因为所有逻辑和小部件的“状态视图”使用都可以作为Form Widget的子级放置吗? (因此符合 LocalKey 范围说明)