flutter-demo/lib/scoped_models/item_scoped_model.dart
LingandRX 8299e1ad62 feat(database): 重构数据库操作并添加 item 模型
- 创建 Item 模型类,包含 toMap 和 fromMap 方法
- 新增 ItemRepository 类,负责数据库操作
- 实现 ItemScopedModel,用于状态管理
- 更新 SQLiteHelper,使用新的 item 表结构- 删除旧的 SQLiteOperation 文件
2025-04-29 19:56:52 +08:00

39 lines
1013 B
Dart

import 'package:flutter/cupertino.dart';
import 'package:item_tracker/models/item_model.dart';
import 'package:item_tracker/repository/item_repository.dart';
class ItemScopedModel extends InheritedWidget {
final ItemRepository itemRepository;
final List<Map<String, dynamic>> items;
ItemScopedModel({
required this.itemRepository,
required this.items,
required Widget child,
}) : super(
child: child,
);
static ItemScopedModel of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<ItemScopedModel>()!;
}
@override
bool updateShouldNotify(covariant InheritedWidget oldWidget) {
return true;
}
Future<List<Map<String, dynamic>>> loadItems() async {
final itemsFormDb = await itemRepository.getAllItems();
items.clear();
items.addAll(itemsFormDb);
return itemsFormDb;
}
Future<void> addItem(Item item) async {
await itemRepository.insertItem(item);
print("提交完成");
await loadItems();
}
}