【发布时间】:2020-08-09 01:34:10
【问题描述】:
我不需要对 TextEditingController 做很多事情,但想显示初始文本。我觉得创建 StatefulWidget 太过分了。 这是我想要的代码的样子
// In StatelessWidget
TextField(
controller: TextEditingController(),
)
但是我看到的每个教程和博客文章都在 StatefulWidget 中使用 TextEditingController 并在 dispose 方法中处理它们。但是如果我像上面那样使用它们,我就无法处理它们
【问题讨论】:
-
使用无状态小部件可能会导致内存泄漏问题。 documentation 也告诉您处置控制器。无论如何,this one
-
如果你从构造函数传递它,然后从父级处理它,你可以处理它,但我很困惑为什么不直接使用
StatefulWidget。 -
@E.Benedos 如果 Dart 被垃圾回收,会发生什么内存泄漏? dispose() 方法中除了一些断言之外真的什么都没有,所以你们都在说什么?
-
@doc 对托管语言(如 DART、C#、ecc..)的 GC 通常在不再使用资源时有效。因此,如果一个资源没有被释放,它就不能被 GC 清理,从而导致内存泄漏。不管怎样,你读过 Flutter 关于 TextEditingController 的文档吗?