gpt4 book ai didi

flutter - 在类级别与 initState 内部初始化对象

转载 作者:行者123 更新时间:2023-12-03 03:35:48 31 4
gpt4 key购买 nike

我正在创建 TextEditingController ,并初始化它,我可以做

class _HomePageState extends State<HomePage> {
var _controller = TextEditingController();
// ...
}

或者
class _HomePageState extends State<HomePage> {
var _controller;

@override
void initState() {
super.initState();
_controller = TextEditingController();
}

// ...
}

在这两种情况下,我都可以使用 dispose清洁 _controller的方法.两种方法在内存分配方面有什么区别吗? dispose能够处理在类(class)级别创建的那个吗?

最佳答案

您可以随时引用小部件文档。 TextEditingControllerdoc sample在创建时对其进行初始化。

几乎没有区别,因为 initState 是在 State 之后完成的第一件事。创建(见 widget lifecycle)。

编辑:要回答您的评论,您的链接是一本食谱,因此它更多的是动手实践,而不是理论上的。此外,它可能很脏或明显损坏,如果您滚动到底部,您可以找到。

我感到您对文档的痛苦,很多时候您从“非官方”来源获得更清晰的信息。您仍然可以引用它,但是是的,您必须保持这种批判精神。

无论如何,如果可以的话,最干净的方法是在创建时进行初始化。 initState 中的初始化通常在您需要 BuildContext 时完成或事先一些额外的业务逻辑。

关于flutter - 在类级别与 initState 内部初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61240977/

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