Я собираюсь использовать базу данных «Сембаст» во Flutter. Простые объекты с такими типами данных, как string и int, работают правильно. Однако при использовании списков это становится проблематичным.
Я создал пример и ориентировался на следующий учебник: https://resocoder.com/2019/04/06/flutter-nosql-database-sembast-tutorial-w-bloc/ В моем примере есть фрукты и листья как объекты. Плод содержит список листьев.
class Fruit {
final String id;
final String name;
final bool isSweet;
final List<Leaves> leaves;
...
}
class Leaves {
final String id;
final String name;
...
}
//Create a sample object
var leaveOne = Leaves(id: "1", name: "leaveOne");
var leaveTwo = Leaves(id: "2", name: "leaveTwo");
var leaveThree = Leaves(id: "3", name: "leaveThree");
var leavesList = List<Leaves>();
leavesList.add(leaveOne);
leavesList.add(leaveTwo);
leavesList.add(leaveThree);
var fruit = Fruit(id: "1", name: "Apple", isSweet: true, leaves: leavesList);
_fruitDao.insert(fruit);
// The fruitDao.insert makes following
Future insert(Fruit fruit) async {
await _fruitStore.add(await _db, fruit.toJson());
}
JSON выглядит так: {id: 1, name: Apple, isSweet: true, leaves: [Экземпляр «Листья», Экземпляр «Листья», Экземпляр «Листья»]}
ОШИБКА следующая: [ОШИБКА: flutter / lib / ui / ui_dart_state.cc (148)] Необработанное исключение: недопустимые аргументы: значение Экземпляр неподдерживаемого типа 'Leaves' оставляет