什么超级和密钥在颤动? [重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

超级和关键词在飞镖课中做了什么?一个例子是下面的代码:

class CardTitle extends StatelessWidget {
  final String title;

  const CardTitle(this.title, **{Key key}**) : **super(key: key)**;
dart flutter
2个回答
4
投票

super用于调用基类的构造函数。所以在你的例子中,CardTitle的构造函数正在调用StatelessWidget的构造函数。

Key是Flutter中用于识别小部件的类型,并允许Flutter知道在树中移动的小部件何时与先前位于不同位置的小部件相同。这里有关于键的好视频:https://www.youtube.com/watch?v=kn0EOS-ZiIc


2
投票

密钥用作Widgets,Elements和SemanticsNodes的标识符。您不需要在大多数时间使用密钥,框架会为您处理密钥并在内部使用它们来区分窗口小部件。有关他们的更多信息,请参阅:https://flutter.dev/docs/development/ui/widgets-intro#keys

至于Super关键字:

我们在您的示例中看到CardTitle小部件扩展了超类statelesswidget,并且在其构造函数中,“:”启动“初始化列表”,这是一个逗号分隔的表达式列表,在超类的构造函数之前执行,因此也在构造函数体之前执行。

在您的问题的示例中,传递给构造函数的key参数被转发到超类的未命名构造函数的命名参数键。

© www.soinside.com 2019 - 2024. All rights reserved.