【发布时间】:2021-07-21 22:09:28
【问题描述】:
我正在开发一个应用程序,并在开始时提取了一个小部件以使我的代码整洁有序..
当我给contracter参数时,它会强制我添加“required”关键字,这在之前是不必要的!!
我怎么能忽略它?
class NewWidget extends StatelessWidget {
NewWidget({this.text, this.onPress});
final String text;
final Function onPress;
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(15.0),
child: Card(
color: Colors.blueAccent,
elevation: 5.0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
child: TextButton(
child: Padding(
padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 100.0),
child: Text(
text,
style: TextStyle(
fontSize: 32.0,
color: Colors.white,
),
),
),
onPressed: onPress(),
),
),
);
}
}
这是我收到的通知..
参数'text'由于其类型不能有'null'的值,但隐含的默认值是'null'。尝试添加显式的非“null”默认值或“required”修饰符。
【问题讨论】:
-
请分享您的代码,以便我们查看
-
我已经分享了
-
是的,现在命名参数应该包含在 dart 的空安全版本中。但是,如果您希望它是可选的,请使用
final String? text; -
没错,我希望它是可选的
标签: android flutter android-studio