【发布时间】:2021-09-28 18:50:33
【问题描述】:
我的屏幕有多个文本字段,大约 15 个左右。由于性能原因,我不想使用 TextEditingController,因为 TextField 的数量可能会增长,并且我需要将数据从一个小部件来回传递到另一个小部件。所以我正在使用 TextField 的 OnChanged 方法并设置一个变量,该变量将通过一个函数从父小部件中使用。现在,当我点击父小部件上的重置时,如何在不使用 TextEditingController 的情况下清除 TextField 控件中的所有值?
class Parent extends StatelessWidget {
String txt='';
myfunction(text)
{
txt=text;
}
@override
Widget build(BuildContext context) {
...
Foo(myfunction);
....
}
}
class Foo extends StatelessWidget {
final Function myfunction;
const Foo(this.myfunction);
@override
Widget build(BuildContext context) {
return TextField(
onChanged: (text) {
myfunction( text);
},...
}
}
【问题讨论】:
-
使用控制器有什么问题?
-
。我的屏幕可以有大约 20 到 30 个文本字段,出于性能原因和内存问题,拥有 30 个控制器并不是一个好的解决方案。将来,我可能还会添加另外 20 个文本字段
-
拥有 30 或最多 50 个文本字段也不好,控制器也没有问题。我建议您使用唯一键和列表视图来提高性能。
-
30 到 50 个字段不好???一个简单的联系人二维码生成至少可以有 20 个字段,这完全取决于用例
标签: flutter