【发布时间】:2019-10-17 12:51:08
【问题描述】:
我喜欢为包含控制器的 TextFormField 创建一个包装小部件,因为我必须在验证函数中访问 TextFormField 的值。使用下面粘贴的代码,每次 MyTextField 获得焦点时,都会再次调用 contructor 和 build 方法。这会导致myInputController 的重新生成,这会导致每次我点击它时文本字段都是空的。
class MyTextField extends StatelessWidget {
TextEditingController myInputController;
MyTextField() {
myInputController = TextEditingController();
}
@override
Widget build(BuildContext context) {
print("build called");
return TextFormField(
controller: myInputController,
);
}
}
在应用程序中,我插入了这样的小部件:
...
child: SingleChildScrollView(
child: Form(
key: _formKey,
child: Column(
children: <Widget>[
MyTextField(),
TextFormField(
),
...
【问题讨论】: