【问题标题】:setState(() {_counter++; }) vs setState(() {}) [duplicate]setState(() {_counter++; }) 与 setState(() {}) [重复]
【发布时间】:2020-11-17 01:38:37
【问题描述】:

把需要更新的值放在setState里面和外面有什么区别?

setState(() {
  _counter++;
});

_counter++;
setState(() {});

【问题讨论】:

标签: flutter dart syntax setstate


【解决方案1】:

假设你知道 setState 做什么,它是不一样的,但它做同样的事情 在您的情况下,您通知框架该对象的内部状态在更改对象内部状态后已更改 但是如果你把它当作

setState(() {});
_counter++;

你可能会得到意想不到的结果 如果你的函数需要很长时间,那么 setState 不会做任何事情

例如试试这个

setState(() {});
await Future.delayed(Duration(milliseconds: 500));
_counter++;

所以它依赖于函数的时间和地点(在 setState 之前或之后)。 但是,最好将值放在 setState 中以避免意外行为,据我所知,这是使用 setState 的最佳实践。

【讨论】:

  • 有人在此处上传有关您的问题的视频链接:youtube.com/… 他解释得更好,大约 6 分钟 :)
猜你喜欢
  • 2019-01-03
  • 2019-01-28
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 2021-03-01
  • 2018-04-08
  • 2018-12-23
  • 2018-11-02
相关资源
最近更新 更多