如何解决flutter 中的 required 和 @required 有什么区别它们之间有什么区别,我们什么时候需要使用它们?
如果我从命名参数中删除 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,),);
}
}
解决方法
@required
只是一个注释,它允许分析器让您知道您缺少一个命名参数,仅此而已。所以你仍然可以编译应用程序,如果没有传递这个命名参数,你可能会得到一个异常。
但是,dart 中添加了健全的空安全性,并且 required
现在是一个需要传递给命名参数的关键字,以便在未传递此参数的情况下不会让编译器运行。它使您的代码更加严格和安全。
如果您确实认为此变量可以为 null,那么您可以通过在其后添加 ?
来更改类型,以便不需要必需的关键字,或者您可以为参数添加默认值。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。