gpt4 book ai didi

flutter - 为什么 TextEditingController 总是在 Stateful 小部件中使用?

转载 作者:行者123 更新时间:2023-12-03 02:44:36 26 4
gpt4 key购买 nike

在阅读 Flutter 文档时,我看到了这篇文章,显示 how to handle changes to a text field .我发现有趣的是,在这篇文章和所有其他关于 TextEditingController 的文章中, TextEditingController始终用于 有状态小部件 无论该小部件是否需要有状态。
TextEditingController是什么原因总是与有状态小部件一起使用?

最佳答案

长回答短

您需要处理您的 TextEditingController State.dispose :

TextEditingController textEditingController;

@override
void dispose() {
textEditingController.dispose(); // You need to do this.

super.dispose();
}

解释

TextEditingController ChangeNotifier TextEditingController继承自 ValueNotifierValueNotifier扩展 ChangeNotifier .

话虽如此, TextEditingController s 必须是 已处理 为了不泄露任何资源。
随时随地 处置 有些东西,你会想要利用 StatefulElement.unmount .这是通过 State 公开的与此 StatefulWidget .有关如何实现这一点,请参见上文。

理想情况下,您将在 initState 中设置您的 Controller 。 :

@override
void initState() {
super.initState();

textEditingController = ..;
}

关于flutter - 为什么 TextEditingController 总是在 Stateful 小部件中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59652639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com