Flutter中StatelessWidget使用widget.text报未定义错误
问题:StatelessWidget中使用
widget.text触发"Undefined name 'widget'"错误 你的代码:
class MyWidget extends StatelessWidget { final String text; const MyWidget({required this.text}); @override Widget build(BuildContext context) { return Text(widget.text); // Accessing `text` using the `widget` keyword }
错误提示:
Undefined name 'widget'. Try correcting the name to one that is defined, or defining the name.
错误原因
widget是State类专属的属性,用于关联对应的StatefulWidget实例。而StatelessWidget属于无状态组件,本身并没有widget这个成员,无需通过它访问自身的成员变量。
解决方法
直接使用text或者this.text替换widget.text即可,修正后的代码:
class MyWidget extends StatelessWidget { final String text; const MyWidget({required this.text}); @override Widget build(BuildContext context) { return Text(text); // 直接访问类成员变量 }
在当前类的方法中,this可以省略,两种写法效果完全一致。
内容的提问来源于stack exchange,提问作者Vickey
相关产品推荐
相关产品推荐

