BuildContext与状态上下文

时间:2018-03-27 18:57:46

标签: flutter

我注意到状态构建方法传入BuildContext,我也注意到State本身也有一个叫做context的成员。我想知道什么时候使用BuildContext是合适的,何时使用成员变量是合适的?它们可以互换吗?

是否有时候使用一个而不是另一个会导致错误,我们如何采取措施确保我们不这样做?

2 个答案:

答案 0 :(得分:3)

State的颤动documentation和构建函数:

  

BuildContext参数始终与此State对象的context属性相同,并且在此对象的生命周期内保持不变。这里冗余地提供了BuildContext参数,以便此方法与WidgetBuilder的签名匹配。

答案 1 :(得分:1)

他们完全相同。

这可能不是很明显,但BuildContext作为参数传递给build永远不会改变。

context的{​​{1}}字段仅指向该常量State。 为什么重复?因为BuildContext会随着时间的推移而更新。 因此,您可能需要访问此StatefulWidgets内部方法,例如BuildContext

didUpdateWidget不需要,因为它仅作为StatelessWidget方法。