Flutter 中“Widget build(BuildContext context)”的“context”是什么意思?

Bak*_*aka 31 dart flutter

TL;DR:
它是构建方法的第二个参数,还是以常规方式对 BuildContext 参数的名称声明?

我正在通过分解“Widget build(BuildContext context)”的每个元素来学习 Flutter 中构建方法的基本语法。

到目前为止,我的理解如下:

  • @override: annotation
  • Widget build() {}: build method returns a widget
  • BuildContext:一个参数/参数,其中包含有关构建此小部件的树中位置的信息

但是,即使在我阅读了相关的 SO 问题和官方文件之后,还不清楚最后一个词“上下文”的确切含义。

到目前为止我确定的是,名称“上下文”可以更改为您想要的任何名称,这意味着它不必与“上下文”同名。

mag*_*n94 42

从文档中,BuildContext是:

小部件树中小部件位置的句柄。

context是一个BuildContext实例,它被传递给小部件的构建器,以便让它知道它在您的应用程序的小部件树中的位置。

一种常见用途是of在使用继承的 Widget时将其传递给方法。

Something.of(context)例如,调用 会返回Something与树中最近的小部件的相对关系,该小部件可以为您提供Something

您可以BuildContext 在文档中阅读有关此处的更多信息。

  • 感谢magileon94!“上下文是一个 BuildContext 实例”,这正是我想要的。只是为了确认,在这种情况下,“上下文”只是一个传统的实例名称吗? (3认同)
  • 是的,通常通过“上下文”,您指的是从上面传递的实例。我曾经遇到过一个问题,我在一个名为“context”的方法中传递了上下文,而“常规”上下文掩盖了我传递的上下文。调用方法参数不是`context`而是`somethingElse`解决了这个问题。所以是的,我相信这纯粹是传统的! (2认同)