1

祝你平安

我正在研究 Flutter 的小部件生命周期并停在一个this.mounted布尔变量的点上,它确实直接存在于State类中,它只能与 aStatefulWidget作为子类连接,并且永远不会/与 a连接StatelessWidget

问题是 ...

是否所有小部件实际上都包含bool this.mounted变量,正如某些人在 [这个接受的答案这篇文章这个] 中所说的那样,或者不包含?

我在 Flutter 中搜索,发现这个挂载变量只在State类中,然后我进一步查找,发现类mount()内部调用了一个函数Element

该类StatelessWidget连接到StatelessElement该类,该类扩展自ComponentElement直接从Element该类继承的 。

我现在真的很困惑,也许我误解了这一点,我需要对此进行解释!谢谢。

4

1 回答 1

2

不知道为什么答案说all widgets。但是NO

只有State<T>对象是具有getter命名的对象mounted

这很容易验证,只要cmd + click或在您的班级中的ctrl + click任何人上,都会将您重定向到位于路径中的名为的文件。Stateframework.dartflutter -> package -> flutter -> lib -> src -> widgets

搜索mounted,此行是您将找到的唯一实际声明。

bool get mounted => _element != null;

这是State班级代码的一部分。

于 2021-05-19T14:11:22.830 回答