如何在自定义小部件构造函数中添加和使用键

Posted

技术标签:

【中文标题】如何在自定义小部件构造函数中添加和使用键【英文标题】:How to Add and Use key in Custom widget constructors 【发布时间】:2021-12-23 22:09:41 【问题描述】:

我收到关于Use key in widget constructors. 的通知警告(非错误),假设我有这样的无状态类:

class TeaTile extends StatelessWidget 

  final TheTea? tea;
  const TeaTile(this.tea);  //the warning in hire!

  @override
  Widget build(BuildContext context) 
    return Container();
  

基本的无状态格式有一个这样的键:

class TeaTile extends StatelessWidget 
  const TeaTile( Key? key ) : super(key: key);  //this one

  @override
  Widget build(BuildContext context) 
    return Container();
  

我知道如何禁用密钥规则use_key_in_widget_constructors: false。但我不想这样做。那么,我如何在

中添加key
final TheTea? tea;
  const TeaTile(this.tea);

解决警告通知?

【问题讨论】:

【参考方案1】:

你可以使用:

final TheTea? tea;
const TeaTile( Key? key, this.tea ) : super(key: key);

基本上是两者的结合,您仍然使用一个命名参数key,它将其值传递给超级构造函数,另一个命名参数tea 将设置您的最终变量值。

【讨论】:

以上是关于如何在自定义小部件构造函数中添加和使用键的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义 PyYAML 构造函数中处理递归?

如何在自定义PyYAML构造函数中处理递归?

Flutter - 从 websocket 消息动态创建小部件 - 未处理的异常:在构造函数中调用 setState()

Qt:访问在构造函数之外使用 GUI 小部件的类的函数

如何在 Flutter 小部件中测试回调函数

在自定义视图中调用 super() 时,确保传递与组件的构造函数相同的 props