[英]How to declare a List type property for a class correctly in Dart?
我是 Flutter 的新手,并试图声明一个文件夹 class,其中一个属性是子文件夹列表。 我无法得出正确的声明,语言给了我各种错误。 有人可以帮我解决这个问题吗?
class Folder {
final int id;
final String title;
final List<Folder> children;
Folder ({
this.id = 0,
this.title = '',
this.children
});
factory Folder.fromJson(Map<String, dynamic> parsedJson) {
Iterable i = parsedJson['children'];
return new Folder(
id: parsedJson['id'] ?? '',
title: parsedJson['title'] ?? '',
children: List<Folder>.from(i.map((model) => Folder.fromJson(model)))
);
}
}
这为children
属性提供了以下错误:参数“children”由于其类型而不能具有“null”值,但隐式默认值为“null”。
有时文件夹没有子文件夹,所以我不想创建一个@required 参数,只是一个可选参数。
我猜您使用的是最新版本的 Dart 并启用了零安全功能?
如果是这种情况,请以这种方式声明您的children
var
List<Folder>? children;
应该做的伎俩。
另一种解决方案是更新您的构造函数
Folder ({
this.id = 0,
this.title = '',
this.children = []
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.