Jus*_*s10 11 state setstate dart flutter
当我们想要重建StatefulWidget时,我们会调用setState()但是如果我们输入的代码在该函数内部或在其外部,那真的很重要吗?
这是:
class _ShoppingListState extends State<ShoppingList> {
Set<Product> _shoppingCart = new Set<Product>();
void _handleCartChanged(Product product, bool inCart) {
setState(() {
if (inCart)
_shoppingCart.add(product);
else
_shoppingCart.remove(product);
});
}
}
Run Code Online (Sandbox Code Playgroud)
与此相同:
class _ShoppingListState extends State<ShoppingList> {
Set<Product> _shoppingCart = new Set<Product>();
void _handleCartChanged(Product product, bool inCart) {
if (inCart)
_shoppingCart.add(product);
else
_shoppingCart.remove(product);
});
setState((){});
}
}
Run Code Online (Sandbox Code Playgroud)
Ron*_*urs 14
根据文件:
Run Code Online (Sandbox Code Playgroud)@protected void setState ( VoidCallback fn )通知框架此对象的内部状态已更改.
每当您更改State对象的内部状态时,请在传递给setState的函数中进行更改:
setState(() { _myState = newValue });提供的回调会立即同步调用.它不能返回未来(回调不能是异步),因为那时不清楚状态何时实际被设置.
并且
通常,建议仅使用setState方法将实际更改包装到状态,而不是任何可能与更改关联的计算.
它并没有明确说出任何关于调用是否在函数内部或外部的事情.但它确实建议把它放进去.而且在我看来,如果将更改放在setState函数中,它也更具可读性和逻辑性
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |