Flutter生成Realm模型报错:List<dynamic> is not a realm model type
解决Realm模型生成时的List类型错误
问题原因
你在_DrillSession里用了普通的List<Point>作为字段类型,但Realm不支持将原生List作为模型的集合字段,必须使用Realm提供的RealmList类型来定义集合属性。
修复步骤
- 修改
drillSession.dart中的bulletCenters字段类型,把List替换为RealmList:
import 'package:realm/realm.dart'; import 'point.dart'; part 'drillSession.g.dart'; @RealmModel() class _DrillSession { @MapTo('_id') @PrimaryKey() late ObjectId id; // 替换List为RealmList late RealmList<Point> bulletCenters; late DateTime createdDate; @MapTo('owner_id') late String ownerId; }
- 重新执行Realm代码生成命令:
flutter pub run realm generate
为什么这样修复?
Realm需要通过自己的RealmList类型来管理集合数据的持久化、关联查询和变更追踪,原生List无法满足Realm的内部数据管理需求。你的Point类已经正确标记为Realm模型,只要把集合类型换成RealmList就能正常生成代码了。
内容的提问来源于stack exchange,提问作者Shorifuzzaman
相关产品推荐
相关产品推荐

