Flutter:如何使用TextEditingController的.addListener

时间:2020-10-02 12:29:48

标签: flutter

我正在构建一个简单的应用,该应用可打印当前TextFormField的结果。例如,当文本更改时,它将打印新值。

我发现您可以使用TextEditingController.addListener来实现此目的,该监听可以监听更改并执行功能。

所以我将其全部包裹在initState中,如下所示

@override
  void initState() {
      addressController.addListener(() {
        print(addressController.text);
      });

我的问题是有时即使没有任何记录,它也会记录更改:

这就是写一个单词然后将其删除的过程。

enter code here

1 个答案:

答案 0 :(得分:1)

如果添加侦听器,则应将其删除,否则TextEditingController可能会有2个或更多侦听器:

@override
void initState() {
    addressController.addListener(_addressControllerListener); 
    super.initState() 
}

void _addressControllerListener() {    
    print(addressController.text); 
}

@override 
void dispose() { 
   addressController.removeListener(_addressControllerListener); 
   super.dispose() 
}