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



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

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

为什么MaterialPageRoute中的调用有效?我看到它请求一个类型为WidgetBuilder的对象,但我们传递的是一个BuildContextcontext周围的括号是否表示对WidgetBuilder的构造函数的调用?

构造器参数接受WidgetBuilder类型的对象。什么是";隐藏的";是typedef:

typedef WidgetBuilder = Widget Function(BuildContext context);

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

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

(context) => SecondRoute()

可以重写为:

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

小部件生成器是一个函数,MaterialPageRoute需要它作为参数。

最新更新