flutter 为什么在build函数中调用setState时不会发生无限循环?

6l7fqoea  于 2023-01-09  发布在  Flutter
关注(0)|答案(1)|浏览(172)

我不明白,为什么在build内部调用setState不会出现无限循环。
例如:

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    callSetState();
    return Container();
  }

  void callSetState() {
    setState(() {});
  }
}

这对我来说真的很奇怪。谁能解释一下吗?

vx6bjr1n

vx6bjr1n1#

  • 因为微件尚未处于已挂载状态。无法处理setState
  • 如果你给予一点延迟,它确实是一个无休止的循环。看这个。
void callSetState() {
    print('over!');
    Future.delayed(Duration(seconds: 1), () {
      setState(() {});
    });
  }

相关问题