这个 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 需要它作为参数。
我是 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 需要它作为参数。