Flutter 是一个了不起的框架,简单易用。我必须看到文档非常好,但是有些概念对我来说仍然很模糊,例如 key
参数。根据文档 A Key is an identifier for Widgets, Elements and SemanticsNodes.
很清楚,但为什么我需要识别我的小部件。到目前为止,我从未在编码中使用过 key 。在我的代码中使用 key 有什么好处吗?谢谢。
最佳答案
大多数时候您不需要使用 Keys,框架会为您处理它并在内部使用它们来区分小部件。不过,在某些情况下您可能需要使用它们。
一个常见的情况是,如果您需要通过键来区分小部件,ObjectKey 和 ValueKey 可用于定义小部件的区分方式。一个例子是 PageStorageKey ,另一个是用于动画删除的列表:https://flutter.io/cookbook/gestures/dismissible/ .
另一个例子是,如果你有一个想要从父级访问的子级,你可以在父级中创建一个 GlobalKey 并将其传递给子级的构造函数。然后您可以执行 globalKey.state 来获取 child 的状态(例如在按钮按下回调中)。请注意,不应过度使用它,因为通常有更好的方法来解决它。
在您使用直接告诉您为其子项定义键的小部件之前,您可能永远不必考虑它。
https://stackoverflow.com/questions/50163889/