flutter 如何正确处理setState以避免内存泄漏?

hrirmatl  于 2022-12-14  发布在  Flutter
关注(0)|答案(3)|浏览(172)

它显示了此错误。
第一个

ux6nzvsh

ux6nzvsh1#

尝试在所有setState调用中执行此操作,似乎您只检查了一次,但以下setState调用未受保护

if (mounted == true) {
    setState(() {})
}
dwbf0jvd

dwbf0jvd2#

您可以覆盖setState,使其仅在State对象挂载在小部件树上时使用。

@override
  void setState(fn) {
    if (mounted) super.setState(fn);
  }
i5desfxk

i5desfxk3#

用途

if (!mounted) return;

setState(){
    /* ... */
}

if (mounted) {
  setState(() {
    /* ... */
  });
}

参考:https://stackoverflow.com/a/74744364/13431819

相关问题