我是否必须为每个TextEditingController创建一个以上的TextField例子

var oneController = TextEditingController();
var twoController = TextEditingController();

然后
TextField(
   controller: oneController,
   decoration: new InputDecoration(labelText: "add type *income"),
),
TextField(
   controller: twoController,
   decoration: new InputDecoration(labelText: "Enter a number"),
   keyboardType: TextInputType.number,
),

还是有办法只使用一个?

最佳答案



是的。 Controller 可让您控制和访问字段的当前状态,

在这种情况下,它可以让您知道当前的用户输入是什么,因此您可以读取或更改该值,还可以选择或查看用户选择的内容。它还可以为每个字段提供一个初始值。

如果使用相同的 Controller ,则在两个TextField中将同时发生相同的事情,例如,当用户在一个字段上键入字母时,它也会在另一个字段上显示。

如果表单或字段太多,则可能需要使用其他解决方案,例如TextFormField,也可以在没有 Controller 的情况下使用该解决方案来一次验证和保存Form小部件中多个字段的用户输入。

有关TextEditingController on the docs的更多信息。

10-06 09:38