是否将最终字段保留在小部件或州?
问题内容:
一个人应该在哪里保留最终价值?
在StatefulWidget
(我的子类别)实例中,并State
通过widget.thatFinalField
或从(子类别)访问它
在State
本身。我已经看过两种方法。每种方法都有优点和缺点吗?
问题答案:
您应该将final
成员字段(通过构造函数参数传递)存储在上StatefulWidget
并使其公开。
该StatefulWidget
的关联State
应该只使用默认的构造函数(无参数),它的成员字段应该是不公开的(起始_
)和可变的。内联初始化它们,或者在initState
需要昂贵或异步工作的情况下初始化它们。
这种模式允许在StatefulWidget
其父级调用时使用新的构造函数参数来重新创建/重建setState
,同时重用以前的方法State
,并将其值存储在其可变成员字段中。