Flutter
[Flutter/Hive] The box "" is already open and of type <> 오류 해결
coco_keh
2023. 2. 10. 17:02
main.dart 에서 openBox를 해주고 다른 dart 파일에서 오픈한 box를 바로 사용하려고 하는데 The box "" is already open and of type <> 라는 오류가 떴다.
await Hive.initFlutter();
//category hive apply
Hive.registerAdapter(CategoryAdapter());
await Hive.openBox<Category>('category');
hive_impl.dart 에서 자세한 오류 상황을 살펴보니 아래 182번째 줄의 내용이었다.
지금 열고자 하는 box가 이미 열린 box라고 하는 걸 보면 같은 box를 사용하는 건데 인식을 못하는 듯 해서 찾아보니 이렇게 HiveObject 를 사용할 때에는 타입 명시를 해주어야 한다고 한다.
나는 main.dart에는 명시를 하고 다른 dart파일에서는 명시를 하지 않은 채로 box를 열려고 하니까 생긴 오류였다.
var box = Hive.box('category'); // 기존
var box = Hive.box<Category>('category'); // 수정 후
위와 같이 수정해주니 오류가 사라졌다.