dart Flutter Hive:打开并返回隔离盒

5vf7fwbs  于 12个月前  发布在  Flutter
关注(0)|答案(1)|浏览(109)

我试图单独打开盒子,因为盒子包含太多数据,导致我的主UI卡顿/冻结。有没有办法单独打开盒子并返回盒子对象?
我问了ChatGPT,它给出了这样的答案:

Future<Box> openBoxInIsolate(String boxName, String path) async {
  final receivePort = ReceivePort();
  await Isolate.spawn(
    _openBoxInIsolate,
    IsolateArgument(boxName: boxName, path: path, sendPort: receivePort.sendPort),
  );
  return await receivePort.first as Box;
}

void _openBoxInIsolate(IsolateArgument arguments) async {
  final box = await Hive.openBox(arguments.boxName, path: arguments.path);
  arguments.sendPort.send(box);
}

class IsolateArgument {
  final String boxName;
  final String path;
  final SendPort sendPort;

  IsolateArgument({required this.boxName, required this.path, required this.sendPort});
}

字符串
但这段代码给出了一个错误:
第一个月
arguments.sendPort.send(box);线。

cunj1qz1

cunj1qz11#

在打开盒子之前使用这个

Hive.init(arguments.path);

字符串

相关问题