0

我正在使用image_picker插件从图库中获取图像。

我将该图像(XFile)保存在具有一堆属性的对象中。我的 HydratedBloc 状态有该对象的列表。为 HydratedBloc 存储 XFile 的最佳方式是什么?

什么是类的最佳编写方式toJsonfromJson函数Expense。我有两个想法

  1. 我可以将XFile对象转换为base64,然后再将其转换回fromJson.
  2. 我可以写入Xfile文件ApplicationDocumentsDirectory,然后将其从那里取回到 tmp storage on fromJson.

在第二种选择中,当我将文件返回到 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();
  }

}
4

0 回答 0