一尘不染

是否将最终字段保留在小部件或州?

flutter

一个人应该在哪里保留最终价值?

StatefulWidget(我的子类别)实例中,并State通过widget.thatFinalField或从(子类别)访问它

State本身。我已经看过两种方法。每种方法都有优点和缺点吗?


阅读 195

收藏
2020-08-13

共1个答案

一尘不染

您应该将final成员字段(通过构造函数参数传递)存储在上StatefulWidget并使其公开。

StatefulWidget的关联State应该只使用默认的构造函数(无参数),它的成员字段应该是不公开的(起始_)和可变的。内联初始化它们,或者在initState需要昂贵或异步工作的情况下初始化它们。

这种模式允许在StatefulWidget其父级调用时使用新的构造函数参数来重新创建/重建setState,同时重用以前的方法State,并将其值存储在其可变成员字段中。

2020-08-13