Flutter 颤振将文本添加到TextField控制器

Flutter 颤振将文本添加到TextField控制器,flutter,controller,textfield,Flutter,Controller,Textfield,当我正确使用此代码时,controller.text将被更新 textController.addListener(() { setState(() { textController.text = analyzeText; }); }); 但当我尝试添加文本的结尾时,它不会给出错误。为什么? textController.addListener(() { setState(() {

当我正确使用此代码时,controller.text将被更新

textController.addListener(() {
          setState(() {
            textController.text = analyzeText;
          });
        });

但当我尝试添加文本的结尾时,它不会给出错误。为什么?

textController.addListener(() {
          setState(() {
            textController.text += ' ' + analyzeText;
          });
        });


在我看来,您正在创建一个永无止境的循环,可能会创建某种内存泄漏。您有一个侦听器在侦听控制器中的更改,在该侦听器中您正在对同一个控制器进行更改。所以一旦开始,它就不会停止。这很可能会导致崩溃。

这不起作用,因为
StackOverflowerError
。当调用堆栈由于过度的深度递归或无限递归而超出时,将抛出该函数

  setState(() {
            textController.text += ' ' + analyzeText;
          });

上面的代码不断地更改值控制器,它将替换
widgetree
中的小部件,因为
flatter
不可变的它将在内存中一次又一次地创建小部件,因此,您将出现上述错误。

是否尝试将文本保存在单独的变量中,然后将其分配给控制器?是的,您是对的,原因是侦听器。我修好了,谢谢