【发布时间】:2020-11-17 01:38:37
【问题描述】:
把需要更新的值放在setState里面和外面有什么区别?
setState(() {
_counter++;
});
和
_counter++;
setState(() {});
【问题讨论】:
-
这能回答你的问题吗? Why does setState take a closure?
标签: flutter dart syntax setstate
把需要更新的值放在setState里面和外面有什么区别?
setState(() {
_counter++;
});
和
_counter++;
setState(() {});
【问题讨论】:
标签: flutter dart syntax setstate
假设你知道 setState 做什么,它是不一样的,但它做同样的事情 在您的情况下,您通知框架该对象的内部状态在更改对象内部状态后已更改 但是如果你把它当作
setState(() {});
_counter++;
你可能会得到意想不到的结果 如果你的函数需要很长时间,那么 setState 不会做任何事情
例如试试这个
setState(() {});
await Future.delayed(Duration(milliseconds: 500));
_counter++;
所以它依赖于函数的时间和地点(在 setState 之前或之后)。 但是,最好将值放在 setState 中以避免意外行为,据我所知,这是使用 setState 的最佳实践。
【讨论】: