Flutter中StatefulWidget与State类谁先被调用?依赖关系解惑
StatefulWidget与State的调用关系解析
核心调用顺序
- 当Flutter要渲染
MyWidget时,首先触发MyWidget的createState()方法,这个方法你已经重写,直接返回一个_MyWidgetState的实例。 - 紧接着Flutter框架自动把这个
_MyWidgetState实例和当前的MyWidget绑定——这就是_MyWidgetState extends State<MyWidget>里泛型<MyWidget>的作用,明确这个状态属于哪个Widget。 - 之后框架调用
_MyWidgetState的build()方法,根据你返回的Row组件树渲染出最终UI。 - 后续如果调用
setState()更新状态,框架会重新执行build()方法,刷新UI;而MyWidget本身是不可变的,所有动态状态都存在_MyWidgetState中。
新手必懂的关键点
MyWidget是不可变类,只能存储初始化时的固定配置(比如构造参数),不能存会变化的数据。_MyWidgetState是可变类,专门负责持有、管理动态状态,以及构建UI。- 两者的关联逻辑由Flutter框架自动处理,你只需要保证
createState()返回正确的State实例,且State的泛型对应正确的Widget即可。
参考资料
Flutter官方文档的「StatefulWidget与State」相关章节,详细讲解了这类组件的生命周期、状态管理核心逻辑,适合新手系统学习。
内容的提问来源于stack exchange,提问作者nishko
相关产品推荐
相关产品推荐

