我想知道在使用 RESTFUL API 完成 HTTP 请求后何时/何地执行操作。我使用 StateNotifdier 作为 Controller 来执行简单的 CRUD 操作,例如retrieveItems
、和.addItem
updateItem
deleteItem
例如,我需要对我的 UI 进行排序、分组、过滤和获取最后 n 个项目,因为我必须显示当天、本周的一些统计信息,并显示当月的项目列表。这种UI仪表板实际上。根据您的意见在哪里编码?我需要为这些操作中的每一个创建一个新的提供者吗?
final itemListControllerProvider = StateNotifierProvider<
ItemListController, AsyncValue<List<Item>>>((ref) {
return ItemListController(ref.read);
});
class ItemListController
extends StateNotifier<AsyncValue<List<Item>>> {
final Reader _read;
ItemListController(this._read) : super(AsyncValue.loading());
Future<void> retrieveItems({required type, bool isRefreshing = false}) async {
try {
final items = await _read(itemRepositoryProvider).getData(type: type);
state = Async.data(items);
} catch (e) {
}
}
Future<void> addItem({required type, dynamic data}) async {
try {
final item = await _read(itemRepositoryProvider).addData(type: type, data: data);
state.whenData((items) => state=Async.data(items..add(item)) );
} catch (e) {
}
}
Future<void> updateItem({required type, dynamic data}) async {
}
Future<void> deleteItem({required type, dynamic data}) async {
}
}