Flutter HiveDb добавляет элемент в список

В настоящее время я застрял здесь, мое текущее мышление не может найти решение добавления элемента в список и удаления элемента из списка в flutter Hive Db и удаления элемента из hive db. Я хочу, чтобы пользователь обновил любые данные в базе данных, но есть некоторые ограничения в

вот чего я хочу достичь

{
    "title": "List1",
    "data": [
        {
            "title": " title",
            "details": "details",
            "data": [
                {
                    "title": " title",
                    "details": " details"
                },
                {
                    "title": " title",
                    "details": " details"
                }
            ]
        },
        {
            "title": " title",
            "details": " details",
            "data": [
                {
                    "title": " title",
                    "details": "details"
                },
                {
                    "title": " title",
                    "details": " details"
                }
            ]
        }
    ]
}

Модели данных

0

 class TodoList {
      String title;
      List<Todo> todos;
    
      TodoList({this.title, this.todos});
    
          TodoList.fromJson(Map<String, dynamic> json)
              : title = json['title'],
                todos = json['todos'];
        
          Map<String, dynamic> toJson() => {
            'title' : title,
            'todos': todos
          };
        }

л

class Todo {

  Todo({this.details, this.done, this.title});
  String title;
  String details;
  bool done = false;
  List<Task> task;

  Todo.fromJson(Map<String, dynamic>parsedJson)
  :title = parsedJson['title'],
  details = parsedJson['details'],
  done = parsedJson['done'],
 task = parsedJson['task'];

 
 Map<String, dynamic> toJson() => {
   'title': title,
   'details': details,
   'done': done,
   'task': task
 };
}

2

class Task {
  Task({this.details, this.done, this.title});
  String title;
  String details;
  bool done =false;

  Task.fromJson(Map<String, dynamic>parsedJson)
  :title = parsedJson['title'],
  details = parsedJson['details'],
  done = parsedJson['done'];
}

Это то, что у меня есть и не работает....

final todoData = todos.getAt(0);
                Map todoJson = jsonDecode(todoData);
                final allData = TodoList.fromJson(todoJson);
                print(allData);
                _listTittle = allData.title;
                print(_listTittle);
                List data = allData.todos;
                Todo todo = data == null ? todoIns : data[index];
                bool done = todo.done;
                done = done == null ? false : done;
                return MaterialButton(
                  padding: EdgeInsets.zero,
                  onPressed: () {},
                  child: Container(
                    color: Colors.white,
                    child: ListTile(
                      leading: IconButton(
                          icon: done
                              ? Icon(
                                  Icons.done,
                                  color: Colors.red,
                                )
                              : Icon(
                                  Icons.done,
                                ),
                          onPressed: () {
                            
                            final todoData = Todo(
                                details: todo.details,
                                title: todo.title,
                                done: done ? false : true);
                            data.insert(index, todoData);
                            final listData =
                                TodoList(title: allData.title, todos: data);
                            updataTodo(listData, index);
                          }),

Любое предложение было бы полезным. Спасибо

0 ответов

Другие вопросы по тегам