【发布时间】:2017-05-09 15:20:00
【问题描述】:
最终值应该保存在哪里?
在StatefulWidget(当然是我的子类)实例中并通过widget.thatFinalField从State(子类)访问它,或者
在State 本身中。我已经看过这两种方法了。它们各自有什么优缺点吗?
【问题讨论】:
最终值应该保存在哪里?
在StatefulWidget(当然是我的子类)实例中并通过widget.thatFinalField从State(子类)访问它,或者
在State 本身中。我已经看过这两种方法了。它们各自有什么优缺点吗?
【问题讨论】:
您应该在StatefulWidget 上存储final 成员字段(通过构造函数参数传递)并将它们公开。
StatefulWidget 关联的State 应该只使用默认构造函数(无参数),并且它的成员字段应该是私有的(以_ 开头)并且是可变的。如果需要昂贵的或异步工作,请内联或在 initState 中初始化它们。
此模式允许StatefulWidget 在其父级调用setState 时使用新的构造函数参数重新创建/重建,同时重新使用以前的State 并让它保留存储在其可变成员字段中的值。
【讨论】: