flutter - 飞镖列表模型类无法显示
问题描述
这是我使用我的模型Note和Book从数据中解析的代码
final data = rows.map((result) {
return NoteWithBook(
note: result.readTable(notes),
book: result.readTable(books),
);
}).toList();
print(data); // ouput [NoteWithBook]
模型类:
class NoteWithBook extends Equatable {
final Note note;
final Book book;
NoteWithBook({
@required this.note,
@required this.book,
});
@override
List<Object> get props => [note, book];
}
从代码结果/输出:
[NoteWithBook]
我的期望输出是:
[
NoteWithBook(
Note(id:...),
Book(id:...)
),
NoteWithBook(
Note(id:...),
Book(id:...)
),
NoteWithBook(
Note(id:...),
Book(id:...)
),
]
解决方案
要使用 Equatable 库覆盖 toString() 方法,您必须将stringify标志设置为 true。默认情况下,stringify 标志为 false,这就是 toString 将仅返回返回类型的实例的原因。
所以你的 NoteWithBook 类应该是这样的:
class NoteWithBook extends Equatable {
final Note note;
final Book book;
NoteWithBook({
@required this.note,
@required this.book,
});
@override
List<Object> get props => [note, book];
@override
bool get stringify => true;
}
推荐阅读
- spring - 在 spring v5 REST 应用程序的浏览器中未找到 GUI 文件,而不使用任何 xml 文件
- internet-explorer - 从 Applet 迁移应用程序
- sql - 哪些数据库支持 UNION JOIN?
- android - 由于外部库无法构建签名 APK(第三方库:life.knowledge4:k4l-video-trimmer:1.0)
- jasper-reports - 由于内容,如何在中断时显示列边界?
- java - 本机 JNI 文件在 Android Studio 中找不到 Java 文件的路径
- tensorflow - 在 Mac OS 上下载 Tensorflow 2.0 GPU 版本
- python-3.x - 使用python代码将文件从一台电脑发送到另一台电脑
- java - java soap xml中缺少结束标记
- java - 如何使用原始类型初始化类的对象