【发布时间】:2021-08-10 23:36:48
【问题描述】:
如果我从命名参数中删除required,它会给我一个错误:
参数 'color' // 不能有 'null' 的值,因为它 类型,但隐含的默认值为 'null'。
它们有什么区别,什么时候需要用到?
class RoundedButton extends StatelessWidget {
late final Color color;
final String title;
final VoidCallback? onPressedInput;
RoundedButton(
{required this.color,
required this.title,
@required this.onPressedInput});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child: Material(
color: color,
borderRadius: BorderRadius.circular(30.0),
elevation: 5.0,
child: MaterialButton(
onPressed: onPressedInput,
minWidth: 200.0,
height: 42.0,
child: Text(
title,
),
),
),
);
}
}
【问题讨论】:
-
从 Dart 2.12/Flutter 2.0 开始,你不应该再次使用
@required,而应该在你有一个不可为空的命名参数时始终使用required。
标签: flutter dart required named-parameters