我正在使用image_picker
插件从图库中获取图像。
我将该图像(XFile)保存在具有一堆属性的对象中。我的 HydratedBloc 状态有该对象的列表。为 HydratedBloc 存储 XFile 的最佳方式是什么?
什么是类的最佳编写方式toJson
和fromJson
函数Expense
。我有两个想法
- 我可以将
XFile
对象转换为base64
,然后再将其转换回fromJson
. - 我可以写入
Xfile
文件ApplicationDocumentsDirectory
,然后将其从那里取回到 tmp storage onfromJson
.
在第二种选择中,当我将文件返回到 tmp 存储时,我必须删除永久文件,ApplicationDocumentsDirectory
以避免手机存储膨胀。
代码如下所示。我的对象费用
class Expense extends Equatable {
final String companyName;
final DateTime? date;
final XFile? image;
...
...
}
费用状态
class ExpenseState extends Equatable {
final List<Expense> expenses;
const ExpenseState({required this.expenses});
...
}
费用集团
class ExpenseBloc extends HydratedBloc<ExpenseEvent, ExpenseState> {
@override
ExpenseState? fromJson(Map<String, dynamic> json) {
return ExpenseState.fromJson(json);
}
@override
Map<String, dynamic>? toJson(ExpenseState state) {
return state.toJson();
}
}