由于其类型,参数 'builder' 不能具有 'null' 的值,但隐式默认值为 'null'
The parameter 'builder' can't have a value of 'null' because of its type, but the implicit default value is '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,
);
}
}
错误:
The parameter 'builder' can't have a value of 'null' because of its
type, but the implicit default value is 'null'. Try adding either an
explicit non-'null' default value or the 'required' modifier.
我尝试添加 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
并且成功了。
我正在尝试通过以下代码使用我以前的应用程序,但似乎 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,
);
}
}
错误:
The parameter 'builder' can't have a value of 'null' because of its type, but the implicit default value is 'null'. Try adding either an explicit non-'null' default value or the 'required' modifier.
我尝试添加 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
并且成功了。