我注意到状态构建方法传入BuildContext,我也注意到State本身也有一个叫做context的成员。我想知道什么时候使用BuildContext是合适的,何时使用成员变量是合适的?它们可以互换吗?
是否有时候使用一个而不是另一个会导致错误,我们如何采取措施确保我们不这样做?
答案 0 :(得分:3)
从State
的颤动documentation和构建函数:
BuildContext参数始终与此State对象的context属性相同,并且在此对象的生命周期内保持不变。这里冗余地提供了BuildContext参数,以便此方法与WidgetBuilder的签名匹配。
答案 1 :(得分:1)
他们完全相同。
这可能不是很明显,但BuildContext
作为参数传递给build
永远不会改变。
context
的{{1}}字段仅指向该常量State
。
为什么重复?因为BuildContext
会随着时间的推移而更新。
因此,您可能需要访问此StatefulWidgets
内部方法,例如BuildContext
。
didUpdateWidget
不需要,因为它仅作为StatelessWidget
方法。