generated from dellevin/template
优化编辑之后回到第一页的问题
This commit is contained in:
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user