首页 > 解决方案 > Flutter 将文本添加到 TextField 控制器中

问题描述

当我使用此代码时,它工作正常,controller.text 被更新。

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

但是当我尝试添加文本结尾时,它崩溃并没有给出错误。为什么?

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

标签: fluttercontrollertextfield

解决方案


这不起作用,因为StackOverflowError. 当调用堆栈由于过度深度或无限递归而超出时,它会被抛出。

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

上面的代码不断改变值控制器,它将替换里面的小部件WidgetTree,因为它Flutter不可变的,它会在内存中一次又一次地创建 Widget,因此,您将遇到上述错误。


推荐阅读