【发布时间】:2021-04-19 00:59:26
【问题描述】:
在以下示例中:
setState(() {
_counter++;
});
如果我在调用setState() 之前增加计数器会怎样?喜欢:
_counter++;
setState(() {});
我真的不明白其中的区别,两个版本都可以。
【问题讨论】:
在以下示例中:
setState(() {
_counter++;
});
如果我在调用setState() 之前增加计数器会怎样?喜欢:
_counter++;
setState(() {});
我真的不明白其中的区别,两个版本都可以。
【问题讨论】:
功能基本相同。唯一的区别是可读性,在setState 回调中调用_counter 可以清楚地说明您打算重建小部件的原因。
【讨论】:
在setState里面和上面放置counter++没有区别。每当调用setState 时,它都会告诉整个小部件进行重建。但是,Flutter 团队建议在 setState 内部而不是在外部更改值,以使其更具可读性,并防止在调用 setState 后意外设置值。这是一个有多个计数器的:
Bad:(告诉小部件重建,但没有任何改变)
setState(() {});
_counter1++;
_counter2++;
_counter3++;
不推荐:(当你有其他代码除了改变值时,你必须阅读整个代码来找出哪些变量会改变)
_counter1++;
_counter2++;
_counter3++;
setState(() {});
良好且易读(即使您有其他代码,例如保存在 SharedPreferences 中,也很容易知道哪些变量会发生变化):
setState(() {
_counter1++;
_counter2++;
_counter3++;
});
【讨论】: