我从视频中复制了这段代码,但我得到了这个错误:* 由于其类型,参数“id”的值不能为“null”,但隐式默认值为“null”。请尝试添加显式非“null”默认值或“required”修饰符。*
import 'package:flutter/material.dart';
class CataologModel {
static final items = [
Item(
1, //ERROR on this line
"iPhone 12",
"Apple 12th Gen",
999,
"White",
"assets/images/iphone12b.jpg",
)
];
}
class Item {
final num id;
final String name;
final String desc;
final num price;
final String color;
final String image;
Item({this.id, this.name, this.desc, this.price, this.color, this.image}); //ERROR on this line
factory Item.fromMap(Map<String, dynamic> map) {
return Item(
id: map["id"],
name: map["name"],
desc: map["desc"],
price: map["price"],
color: map["color"],
image: map["image"],
);
}
toMap() => {
"id": id,
"name": name,
"desc": desc,
"price": price,
"color": color,
"image": image,
};
}
而且这个错误在开始时:
即使我按要求在参数中使用“required”,我也会得到这个新错误,并且无法解决它们。
注意:我是Flutter的新手
我复制了代码,但它不工作,如视频中所示,这可能是因为空安全,因为我是新的,我不知道很多关于空安全。
1条答案
按热度按时间oyxsuwqo1#
作为null安全final,构造函数上不需要要求可空字段。
你使用的是命名参数,就像
更多关于null-safety的信息。