有关于 如何正确销毁 TextEditingController 的文档,但这些文档对我的情况没有帮助。我的项目中有重复的代码,所以我想通过创建一个需要具有以下签名的函数来最小化代码:
Widget displayMyWidgets(String label, TextEditingController _controller) {
return Container(
// codes to display widget(s) here.
);
}
我还读到,您不能保留流和 TextEditingController 未处置,因为这会导致 内存泄漏,并且 如果我们不处置它们,它们仍然可用。 (这些一定是正确的吗?)
那么,如果我在项目中使用上述函数,我应该在哪里销毁
_controller
?或者当 _controller 是函数本地时,垃圾收集器会在这种情况下工作吗? (如果可能,请指出资源。)在上面,当然,我将无法在返回函数之后调用.dispose()
!
在我的
Container
中,我主要在只读模式下使用TextField
来显示动态文本,所以我不认为我可以在其onChanged
或其他地方编写任何代码?
在 Widget 中创建它:通常,您将在 StatefulWidget 中创建 TextEditingController。
Widget 的 dispose() 方法中的 Dispose:在 StatefulWidget 的 dispose() 方法中对 TextEditingController 进行 Dispose,以释放其资源。
不要在函数中处理:避免在接收它的函数中处理它。相反,让拥有控制器的小部件处理其处置。