flutter 为什么setState可以放在任何地方?

lokaqttq  于 2023-02-09  发布在  Flutter
关注(0)|答案(1)|浏览(142)

我知道这两个是一样的。

counter++;
setState((){});
setState((){
  counter++;
};

但它为什么会起作用呢

setState((){});
counter++;

我可以看到计数器的变化,即使我在调用setState函数后更改了它。

0yg35tkg

0yg35tkg1#

实际上,您不需要在setState中执行count++
如果您查看文档/code https://api.flutter.dev/flutter/widgets/State/setState.html,您会发现唯一重要的行是_element!.markNeedsBuild();
setState()基本上会重建你的小部件,因为你用count++修改了小部件的示例,更新后的计数会出现在屏幕上。
setState接受一个回调,建议在其中应用状态修改,因为它提供了一些有用的错误消息,如果您做错了什么,这些消息将在调试时帮助您。

相关问题