我的用例是在抖动中构造一个WidgetApp
:
new WidgetsApp(
pageRouteBuilder: <Contructor for MaterialPageRoute here>,
...
);
我没有引用构造函数,而是将其包装在一个函数中:
PageRoute pageRouteBuilder(RouteSettings settings, WidgetBuilder builder) {
return MaterialPageRoute(settings: settings, builder: builder);
}
然后再引用该函数:
new WidgetsApp(
pageRouteBuilder: pageRoutebuilder,
...
);
答案 0 :(得分:1)
在Dart历史上的某个时候它曾经是可能的(例如传播算子)。 虽然目前尚无法实现,但是该功能可能会在某个时候恢复。
同时,您可以为它们使用重构选项来生成一些样板。
答案 1 :(得分:1)
Dart(https://github.com/dart-lang/sdk/issues/10659)中不支持构造函数删除
但是即使支持它,您的代码也不能真正使用它。 MaterialPageRoute
采用settings
和builder
作为命名参数,而PageRouteFactory
采用2个位置参数。因此不会匹配。
您可以这样写:
new WidgetsApp(
pageRouteBuilder: (settings, builder) => MaterialPageRoute(settings: settings, builder: builder),
);
自动推论允许您省略闭包参数中的类型。