一个 Flutter 组件(Widget)在很多情况下都需要接收一些参数。Flutter 插件通常提示使用 const 关键字包裹某 Widget(很多人接受建议且执行),导致通过 widget.xxx 使用参数的时候报:Invalid Constant Value.
所以,只需要把const
关键字删除掉就可以通过编译了。
下面是报错的案例:
class QYInput extends StatefulWidget {
/// [obscureText] 组件参数
final bool obscureText;
/// [this.obscureText] 构造函数初始化 [obscureText] 参数,默认值为 false
const QYInput({Key? key, this.obscureText = false}) : super(key: key);
@override
_QYInputState createState() => _QYInputState();
}
class _QYInputState extends State<QYInput> {
@override
Widget build(BuildContext context) {
/// [widget.obscureText] StatefulWidget 组件接收参数之后通过 [widget] 来调用,[widget] 本身指向的就是 [QYInput] 组件
return const TextField(obscureText: widget.obscureText);
}
}