swi*_*ing 4 realm dart flutter
我是 Realm 的新手,我想将它与 Flutter (Dart) 一起使用,但使用此命令生成g 文件时遇到问题
\nflutter pub run realm generate\nRun Code Online (Sandbox Code Playgroud)\n这是终端中的错误:
\n\xe2\x9e\x9c app-android git:(develop) \xe2\x9c\x97 flutter pub run realm generate\n[INFO] Generating build script...\n[INFO] Generating build script completed, took 763ms\n\n[INFO] Initializing inputs\n[INFO] Reading cached asset graph...\n[INFO] Reading cached asset graph completed, took 132ms\n\n[INFO] Checking for updates since last build...\n[INFO] Checking for updates since last build completed, took 1.3s\n\n[INFO] Running build...\n[INFO] Running build completed, took 28ms\n\n[INFO] Caching finalized dependency graph...\n[INFO] Caching finalized dependency graph completed, took 58ms\n\n[SEVERE] realm:realm_generator on lib/Models/FavoritesModel/favorites_model.dart (cached):\n\nNot a realm type\n\nin: package:test_app/Models/FavoritesModel/favorites_model.dart:11:14\n\xe2\x95\xb7\n6 \xe2\x94\x82 @RealmModel()\n7 \xe2\x94\x82 class _FavoritesModel {\n \xe2\x94\x82 \xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81 in realm model for \'FavoritesModel\'\n... \xe2\x94\x82\n11 \xe2\x94\x82 late final List<AudiosArticleModel> data;\n \xe2\x94\x82 ^^^^^^^^^^^^^^^^^^^^^^^^ List<AudiosArticleModel> is not a realm model type\n \xe2\x95\xb5\nRemove the invalid field or add an @Ignored annotation on \'data\'.\n\n[SEVERE] Failed after 110ms\nRun Code Online (Sandbox Code Playgroud)\n这是我的favorites_model.dart文件:
\nimport \'package:realm/realm.dart\';\nimport \'../AudiosArticleModel/audios_article_model.dart\';\npart \'favorites_model.g.dart\';\n\n@RealmModel()\nclass _FavoritesModel {\n\n late String title;\n late String author;\n late final List<AudiosArticleModel> data;\n}\nRun Code Online (Sandbox Code Playgroud)\n有人知道问题是什么吗?我已经使用相同的命令成功生成了 AudiosArticle 模型。
\naudios_article_model.dart
\nimport \'package:realm/realm.dart\';\npart \'audios_article_model.g.dart\';\n\n@RealmModel()\nclass _AudiosArticleModel {\n late String link;\n late String title;\n late String author;\n late String hour;\n late String minute;\n late String second;\n}\nRun Code Online (Sandbox Code Playgroud)\naudios_article_model.g.dart
\n// GENERATED CODE - DO NOT MODIFY BY HAND\n\npart of \'audios_article_model.dart\';\n\n// **************************************************************************\n// RealmObjectGenerator\n// **************************************************************************\n\nclass AudiosArticleModel extends _AudiosArticleModel with RealmObject {\n AudiosArticleModel(\n String link,\n String title,\n String author,\n String hour,\n String minute,\n String second,\n ) {\n this.link = link;\n this.title = title;\n this.author = author;\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n }\n\n AudiosArticleModel._();\n\n @override\n String get link => RealmObject.get<String>(this, \'link\') as String;\n @override\n set link(String value) => RealmObject.set(this, \'link\', value);\n\n @override\n String get title => RealmObject.get<String>(this, \'title\') as String;\n @override\n set title(String value) => RealmObject.set(this, \'title\', value);\n\n @override\n String get author => RealmObject.get<String>(this, \'author\') as String;\n @override\n set author(String value) => RealmObject.set(this, \'author\', value);\n\n @override\n String get hour => RealmObject.get<String>(this, \'hour\') as String;\n @override\n set hour(String value) => RealmObject.set(this, \'hour\', value);\n\n @override\n String get minute => RealmObject.get<String>(this, \'minute\') as String;\n @override\n set minute(String value) => RealmObject.set(this, \'minute\', value);\n\n @override\n String get second => RealmObject.get<String>(this, \'second\') as String;\n @override\n set second(String value) => RealmObject.set(this, \'second\', value);\n\n static SchemaObject get schema => _schema ??= _initSchema();\n static SchemaObject? _schema;\n static SchemaObject _initSchema() {\n RealmObject.registerFactory(AudiosArticleModel._);\n return const SchemaObject(AudiosArticleModel, [\n SchemaProperty(\'link\', RealmPropertyType.string),\n SchemaProperty(\'title\', RealmPropertyType.string),\n SchemaProperty(\'author\', RealmPropertyType.string),\n SchemaProperty(\'hour\', RealmPropertyType.string),\n SchemaProperty(\'minute\', RealmPropertyType.string),\n SchemaProperty(\'second\', RealmPropertyType.string),\n ]);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
swi*_*ing 10
我发现问题:由于_前缀,模型类是私有的。
解决方案是使用$前缀来使其对所有项目公开。
audios_article_model.dart
import 'package:realm/realm.dart';
part 'audios_article_model.g.dart';
@RealmModel()
class $AudiosArticleModel {
late String link;
late String title;
late String author;
late String hour;
late String minute;
late String second;
}
Run Code Online (Sandbox Code Playgroud)
当然你需要生成g文件。
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |