如何解决如何从配置单元访问嵌套对象元素?
在我的应用程序中,我使用了 3 个相互嵌套的类,我决定使用似乎比 sqlite 更容易的 hive 包,我已经根据 hive.dev 设置了 hive 包,并且我没有遇到任何与设置相关的错误过程,我想将我的对象存储在配置单元框中,当我创建主类别对象并将其添加到配置单元框时,我可以在我的主页中接收它,但是当我想将子类别添加到任何特定的主对象时,我无法访问子类别列表,或者我不明白我到底要做什么,有人可以帮我创建必要的功能吗 我在下面分享 3 个类和 hiveHelper 类。感谢您的帮助。
part 'categoryModel.g.dart';
@HiveType(typeId : 0)
class CategoryModel extends HiveObject{
CategoryModel(
{ this.categoryId,this.categoryImagePath,this.categoryName,this.categoryColor,this.subCategoryModels});
@HiveField(0)
final int categoryColor;
@HiveField(1)
List <SubCategoryModel> subCategoryModels=[];
@HiveField(2)
int categoryId;
@HiveField(3)
String categoryImagePath;
@HiveField(4)
String categoryName;
}
part 'subCategoryModel.g.dart';
@HiveType(typeId : 1)
class SubCategoryModel extends HiveObject{
SubCategoryModel({
this.subCategoryId,this.subCategoryImagePath,this.subCategoryName,this.recipeId,List<Ingredient>ingredients,this.recipePhotoDir,this.recordedVoiceDir,bool isCompeted});
@HiveField(0)
final int categoryColor;
@HiveField(1)
final double recipeId;
@HiveField(2)
bool isCompleted;
@HiveField(3)
int subCategoryId;
@HiveField(4)
String subCategoryImagePath;
@HiveField(5)
String subCategoryName;
@HiveField(6)
List <Ingredient> ingredients=[] ;
@HiveField(7)
String recipePhotoDir;
@HiveField(8)
String recordedVoiceDir;
}
@HiveType(typeId: 2)
class Ingredient extends HiveObject{
Ingredient({this.ingredientName,this.dropDownValue,this.ingredientAmount});
@HiveField(0)
final ingredientName;
@HiveField(1)
String dropDownValue;
@HiveField(2)
String ingredientAmount;
}
class HiveHelper{
void addCategoryModel(CategoryModel categoryModel)async{
var Box = await Hive.openBox('categoryModelsInBox');
await Box.add(categoryModel);
await Hive.close();
}
Future <Map> getCategoryModels()async{
var Box = await Hive.openBox('categoryModelsInBox');
var BoxToMap=Box.toMap();
await Hive.close();
return BoxToMap;
}
void addSubCategory(SubCategoryModel subCategoryModel,key)async{
var Box = await Hive.openBox('categoryModelsInBox');
Box.put(key,subCategoryModel);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。