调用 StatefulWidget 组件的参数时(widget.xxx)报 Invalid Constant Value

一个 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);
  }
}
上一篇:shiro权限注解和会话管理


下一篇:记一次奇怪的QT布局重叠问题