flutter - Flutter 框架中使用的键是什么?

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/

相关文章:

dart - Flutter:忽略小部件上的触摸事件

dart - 如何确定 Flutter 中图像的宽度和高度?

flutter - Flutter 支持负边距吗?

dart - 使用BottomNavigationBar导航时如何在 flutter 中保留小部件状

Flutter - TabBarView 内部的 ListView 失去滚动位置

flutter - 自定义卡片形状 Flutter SDK

dart - Flutter 中具有 Snap 效果的水平滚动卡片

dart - 未找到方向性小部件

dart - Flutter 中的装饰图像模糊

dart - 在 Flutter 中的小部件之间传递数据的最佳方式