一个 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); } }