V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wangxiaoaer
V2EX  ›  问与答

Flutter 的 StatefulWidget 为什么需要额外定义 state?

  •  
  •   wangxiaoaer · 2019-01-05 16:21:12 +08:00 · 2173 次点击
    这是一个创建于 1974 天前的主题,其中的信息可能已经有所发展或是发生改变。

    xx

    如图,MyApp 里面的 home 是一个 StatefulWidget,里面为什么不直接实现 build 方法,而是要创建 state 对象?

    开始以为 state 对象是纯状态管理,不带 UI 逻辑的,结果发现 state 里面也要实现 build 方法,构造界面,不是很理解为什么要多绕一圈?

    比如直接在 MyHomePage 里面存储状态 counter,并且构造界面,处理事件等,有什么问题(当然目前是做不到,因为 MyHomePage 里面并没有 build 方法可以 override )?

    3 条回复    2019-01-06 09:11:44 +08:00
    everwanna
        1
    everwanna  
       2019-01-05 21:01:25 +08:00 via Android
    为了方便 app 进入后台序列化,强行把 app 和状态数据分离
    wangxiaoaer
        2
    wangxiaoaer  
    OP
       2019-01-05 21:10:36 +08:00
    @everwanna #1 状态数据你指的是 state ?可是 state 里面明明包含构建 UI 的代码啊。
    everwanna
        3
    everwanna  
       2019-01-06 09:11:44 +08:00 via iPhone
    变化的都属于 UI 状态,区别于静态 UI 部分,这个不是 MVC 的 model 数据
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:51 · PVG 08:51 · LAX 17:51 · JFK 20:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.