#flutter #sqflite
Вопрос:
Как вы могли хранить что-то подобное, даже если приложение закрыто в трепете:
Class myList {
String id;
List<Item> list;
}
Class Item{
//Many property’s
}
Я подумал, может быть, я мог бы сделать это с помощью «sqflite», зависимости от флаттера, но я понятия не имею, как я мог бы хранить там этот список<Элемент>. У тебя есть какие-нибудь идеи?
Кстати: Мне нужно несколько таких экземпляров «myList».
Ответ №1:
Вы можете сохранить его с помощью sqflite,hive или общих настроек.Попробуйте сохранить его в разделе общие настройки flutter. Это два метода, которые вы можете использовать.
Использование общих предпочтений 1)Сначала создайте экземпляр общих предпочтений
SharedPreferences prefs = await SharedPreferences.getInstance();
Затем сохраните соответствующий тип данных.здесь вам нужно поместить список объектов, поэтому добавьте список и преобразуйте его в строку с помощью jsonEncode.
Map<String,List<Item>> map={mylist.id: mylist.list};
prefs.setString("itemList", json.encode(map));
Затем вы можете получить такие данные
Map<String,List<Item>> map=json.decode(prefs.getString("itemList")).asMap();
2)Использование Улья
Сначала создайте базу данных улья.вы можете указать здесь любое имя
var box = Hive.box('myBox');
Затем добавьте объект в эту базу данных
var myList = myList()
..id = your id here
..list = add list here;
var name = box.add(myList);
Вы можете получить этот список данных в любом месте.
print(box.getAt(0));
Комментарии:
1. Есть ли какая-то причина, по которой люди говорят: «не храните большие объемы данных в общих настройках»? Я имею в виду, что вариант с общими предпочтениями выглядит проще, но мне нужно сохранить, вероятно, почти 10 из этих списков, содержащих 3-6 моих элементов. Является ли это проблемой для общих предпочтений ?
2. да, учитывайте объем данных при использовании общих настроек. Думаю, Улей-лучшее решение. Смотрите документацию в pub.dev для hive.
3. Хорошо, это означает, что вы сказали бы, что до 60 из этих элементов (у которых у всех есть свойства 5 строк или Int) — это слишком много для общих предпочтений, или, по крайней мере, hive было бы намного лучше?
4. Это не ошибка получения. Использование большого объема данных в общих предпочтениях приводит к некоторым проблемам с производительностью. Улей был бы намного лучше.
Ответ №2:
Вы можете попробовать пакет hive. Это легкое локальное хранилище, и рекомендуется использовать hive, потому что в нем есть лучшие критерии для чтения и записи. Вы можете найти учебник для улья. или просто прочитайте документацию.