为什么_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中。
1
0

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1746 学习 · 882 问题

查看课程