Flutter 颤振初始状态文本字段
我开始使用颤振,我发现这两种方法可以初始化一个控制器,在文本字段中使用它,但是,使用其中一种有什么区别 以下是第一点:Flutter 颤振初始状态文本字段,flutter,dart,Flutter,Dart,我开始使用颤振,我发现这两种方法可以初始化一个控制器,在文本字段中使用它,但是,使用其中一种有什么区别 以下是第一点: TextEditingController _controller; @override void initState() { _controller = TextEditingController(); super.initState(); } ... TextField( controller: _controller, ), 这是另一种方式: final _
TextEditingController _controller;
@override
void initState() {
_controller = TextEditingController();
super.initState();
}
...
TextField(
controller: _controller,
),
这是另一种方式:
final _controller = TextEditingController();
...
TextField(
controller: _controller,
),
提前感谢。当第一次实例化时,initState()方法在StatefullWidget中被调用,其效果与在构造函数中初始化时相同。总之,除了不能在无状态小部件中使用initState()初始化变量外,没有任何本质上的区别。唯一的区别是使用
final
可以确保在编译时控制器
变量始终指向同一个对象(即,它的值永远不会改变).对于TextEditingController,您可以直接声明它,就像第二种方法一样,因为它始终取决于类的声明方式。TextEditingController更方便,您可以这样做:)。关于initState:这些是仅与StatefulWidgets一起提供的Widget生命周期方法。在无状态小部件中,你不会有这些方法。有趣的是,我必须学习一些东西,比如小部件生命周期方法,我很感激!。谢谢,这就解决了我的问题!所以我可以使用任何方式来使用控制器,考虑到小部件是有状态的,这是我理解的。