【发布时间】:2020-09-03 21:00:50
【问题描述】:
我正在使用提供程序进行状态管理。我的表单中有多种类型的字段。问题在于文本字段 每当我更改 Text 时,它的行为就会很奇怪,就像输入的文本以相反的顺序显示一样。
class MyProvider with ChangeNotifier{
String _name;
String get name => _name;
setname(String name) {
_name = name;
notifyListeners();
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final MyProvider myProvider = Provider.of<MyProvider>(context);
final TextEditingController _nameController = TextEditingController(
text: myProvider.name,
);
return TextField(
controller: _nameController,
onChanged: myProvider.setname,
);
}
【问题讨论】:
-
先生。你的代码对我来说很完美。在我看来,这是使用提供程序的 TextEditingController 的最佳解决方案。问题是您的提供商在您每次键入时都在听。你所需要的只是听:假的。
final MyProvider myProvider = Provider.of<MyProvider>(context, listen: false);
标签: flutter dart flutter-provider