为什么_controller重新赋值没有放在setState()中?
来源:6-2 首页接口系分与Dao层实现

weixin_慕神9322259
4天前
更新_controller的时候,是不是也应该放在setState()里面呀?
if (result.categoryList != null) {
//tab长度变化后需要重新创建TabController
setState(() {
categoryList = result.categoryList!;
_controller = TabController(
length: categoryList, vsync: this);
});
}
我看老师的代码_controller的重新赋值是没有包裹在setState(),我感觉对于stateful widget,只要是内部的状态/field改变,都应该放在setState()里面比较好吧?
if (result.categoryList != null) {
//tab长度变化后需要重新创建TabController
_controller = TabController(
length: result.categoryList?.length ?? 0, vsync: this);
}
setState(() {
categoryList = result.categoryList ?? [];
});
写回答
1回答
-
CrazyCodeBoy
3天前
赋值放在setState之前也能生效。不过还是建议放到setState中。10
相似问题