这个 Flutter 构造函数调用是如何工作的?

How does this Flutter constructor call work?

我是 Flutter 的新手,在阅读教程时我看到了以下代码片段:

// Within the `FirstRoute` widget
onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => SecondRoute()),
  );
}

为什么会在MaterialPageRoute work? I see it requests an object of type WidgetBuilder, but what we pass is a BuildContext中调用。 context 周围的括号是否表示对 WidgetBuilder 的构造函数的调用?

builder参数接受你说的WidgetBuilder类型的对象。 “隐藏”的是它是 typedef:

typedef WidgetBuilder = Widget Function(BuildContext context);

所以你传递的其实是一个与之匹配的匿名函数

它被称为箭头函数。其实这段代码

(context) => SecondRoute()

可以重写为:

MaterialPageRoute(builder: (context)  {
 return SecondRoute();
})

Widget builder 是一个函数,MaterialPageRoute 需要它作为参数。