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;
我是 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;