参数'builder'由于其类型而不能具有"null"的值,但隐式默认值为"null"



我正试图用以下代码使用我以前的应用程序,但Flutter中似乎发生了一些更新,我得到了以下错误:

import 'package:flutter/material.dart';
class CustomRoute<T> extends MaterialPageRoute<T> {
CustomRoute({
WidgetBuilder builder,
RouteSettings settings,
}) : super(
builder: builder,
settings: settings,
);
@override
Widget buildTransitions(
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
if (settings.name == '/') {
return child;
}
return FadeTransition(
opacity: animation,
child: child,
);
}
}
class CustomPageTransitionBuilder extends PageTransitionsBuilder {
@override
Widget buildTransitions<T>(
PageRoute<T> route,
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
if (route.settings.name == '/') {
return child;
}
return FadeTransition(
opacity: animation,
child: child,
);
}
}

错误:

参数"builder"的值不能为"null",因为它类型,但隐式默认值为"null"。尝试添加显式非'ull'默认值或'required'修饰符。

我试图添加required@required,但都不起作用。`

你能这样使用吗?因为它没有给出错误:

import 'package:flutter/material.dart';
class CustomRoute<T> extends MaterialPageRoute<T> {
CustomRoute({
required WidgetBuilder builder,
required RouteSettings settings,
}) : super(
builder: builder,
settings: settings,
);
@override
Widget buildTransitions(
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
if (settings.name == '/') {
return child;
}
return FadeTransition(
opacity: animation,
child: child,
);
}
}
class CustomPageTransitionBuilder extends PageTransitionsBuilder {
@override
Widget buildTransitions<T>(
PageRoute<T> route,
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
if (route.settings.name == '/') {
return child;
}
return FadeTransition(
opacity: animation,
child: child,
);
}
}

我尝试添加required,结果成功了。

相关内容

最新更新