Flutter ListView 不会更新

Flutter ListView won't Update

我是 Flutter 开发新手。我刚开始使用 Provider 模式制作 Note 应用程序,但是当我更新笔记时,它不会更新,它只会在列表中创建一个新笔记。但是当我最小化并且 return 返回列表被更新时。当我点击该项目时,它显示旧数据。帮帮我

sqlite_helper.dart

import 'package:sqflite/sqflite.dart' as sql;
import 'package:path/path.dart' as path;
import 'package:sqflite/sqlite_api.dart';

class DBHelper {
  static Future<Database> database() async {
    final dbPath = await sql.getDatabasesPath();
    return sql.openDatabase(path.join(dbPath, 'mydatabase.db'),
        onCreate: (db, version) {
      return db.execute(
          'CREATE TABLE notes(id TEXT PRIMARY KEY, title TEXT, content TEXT)');
    }, version: 1);
  }

  static Future<void> insert(String table, Map<String, Object> data) async {
    final db = await DBHelper.database();
    db.insert(
      table,
      data,
      conflictAlgorithm: ConflictAlgorithm.replace,
    );
  }
}

NoteProvider 没有更新逻辑,这里_items.add(newNote)会在末尾添加一个item。所以现有的列表项不会得到更新。

下面将举例说明如何更新列表项,您仍然可以围绕这个有很多答案可用。

_items[_items.indexWhere((note) => note.id == newNote.id)] = newNote;