【问题标题】:BuildContext vs State ContextBuildContext 与状态上下文
【发布时间】:2018-03-27 18:57:46
【问题描述】:

我注意到一个 state 的 build 方法传入一个 BuildContext,我还注意到 State 本身也有一个名为 context 的成员。我想知道什么时候适合使用 BuildContext,什么时候适合使用成员变量?它们可以互换吗?

有时使用其中一个会导致错误,我们如何采取措施确保我们不会这样做?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    来自 documentation 的颤振 State 和构建函数:

    BuildContext 参数始终与此 State 对象的上下文属性相同,并将在此对象的生命周期内保持相同。 BuildContext 参数在此处冗余提供,以便此方法与 WidgetBuilder 的签名相匹配。

    【讨论】:

      【解决方案2】:

      它们是严格相等的。

      这可能并不明显,但作为参数传递给buildBuildContext 永远不会改变。

      Statecontext 字段仅指向该常量 BuildContext。 为什么要重复?因为StatefulWidgets 往往会随着时间的推移而更新。 所以你可能需要在didUpdateWidget等方法中访问这个BuildContext

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

      【讨论】:

        猜你喜欢
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        • 2021-06-07
        • 1970-01-01
        • 2019-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多