为什么总是在有状态小部件中使用TextEditingController?

问题描述 投票:1回答:1

在阅读Flutter文档时,我遇到了显示how to handle changes to a text field的文章。我发现有趣的是,在本文档以及所有其他与TextEditingController有关的文章中,无论TextEditingController是否需要是有状态的,始终在Stateful widget中使用TextEditingController

TextEditingController始终与有状态小部件一起使用的原因是什么?

flutter dart flutter-layout
1个回答
0
投票
您需要在State.dispose

处置您的State.dispose

TextEditingController textEditingController; @override void dispose() { textEditingController.dispose(); // You need to do this. super.dispose(); } 说明

[A TextEditingControllerTextEditingController,因为ChangeNotifier继承自ChangeNotifierTextEditingController扩展了ValueNotifier

话虽如此,为了不泄漏任何资源,需要将ValueNotifier s

dispose。每当您要

dispose某些内容时,您都想使用ChangeNotifier。这是通过TextEditingControllerStatefulElement.unmount公开的。有关如何实现的信息,请参见上文。

理想情况下,您将在StatefulElement.unmount中设置控制器:
State
© www.soinside.com 2019 - 2024. All rights reserved.