优化编辑之后回到第一页的问题

This commit is contained in:
DelLevin-Home
2026-07-05 14:31:30 +08:00
parent 6dd2014f1b
commit 2f926dfdb5
7 changed files with 59 additions and 5 deletions

View File

@@ -1333,7 +1333,7 @@ class _BookDetailPageState extends State<BookDetailPage> {
void _navigateToEdit(BuildContext context) {
final provider = context.read<AppProvider>();
Navigator.pushNamed(context, '/book-form', arguments: widget.book).then((_) {
provider.setEditRefresh();
provider.setEditRefresh(widget.book.id);
provider.loadBooks();
});
}

View File

@@ -82,6 +82,20 @@ class _BookTabPageState extends State<BookTabPage> {
final statusChanged = provider.bookStatusIndex != _lastStatusIndex;
final countChanged = provider.books.length != _prevBookCount;
final editRefreshed = provider.editRefreshCounter > _lastEditRefreshCounter;
if (editRefreshed && provider.lastEditedItemId != null) {
// 就地更新被编辑的条目,不重置分页
_lastEditRefreshCounter = provider.editRefreshCounter;
_prevBookCount = provider.books.length;
final editedId = provider.lastEditedItemId!;
final idx = _items.indexWhere((b) => b.id == editedId);
if (idx != -1) {
final updated = provider.books.where((b) => b.id == editedId).firstOrNull;
if (updated != null) {
setState(() { _items[idx] = updated; });
}
}
return;
}
if (statusChanged || countChanged || editRefreshed) {
_prevBookCount = provider.books.length;
_loadFirst();