定义好一个有状态(或无状态)的组件之后,需要为其传递一些参数,希望组件能够更加灵活使用。那么,在 Flutter 中如何为其传递参数呢?
以下是 StatefulWidget 传递值的步骤,一共三步:
1、类中定义 final 全局变量;
class QYInput extends StatefulWidget { final int minLines; }
2、构造函数中初始化变量;
class QYInput extends StatefulWidget { final int minLines; const QYInput({Key? key, this.minLines = 1}) : super(key: key); }
3、继承于 State 抽象类中通过 widget.xxx
调用变量。
class _QYInputState extends State<QYInput> { @override Widget build(BuildContext context) { return TextField(minLines: widget.minLines); } }
注意:如果 TextFiled 组件前加上了 const 关键字,极有可能出现调用 StatefulWidget 组件的参数时(widget.xxx)报 Invalid Constant Value的错误,详细请查看博客文章。