fix: use ref.watch in build() and avoid stale snapshot in loadMore catch
This commit is contained in:
@@ -56,7 +56,7 @@ class NewsNotifier extends AsyncNotifier<NewsState> {
|
||||
|
||||
@override
|
||||
Future<NewsState> build() async {
|
||||
final items = await ref.read(newsApiProvider).getNewsItems(
|
||||
final items = await ref.watch(newsApiProvider).getNewsItems(
|
||||
days: 90,
|
||||
limit: _limit,
|
||||
offset: 0,
|
||||
@@ -94,7 +94,8 @@ class NewsNotifier extends AsyncNotifier<NewsState> {
|
||||
reactions: updatedReactions,
|
||||
));
|
||||
} catch (e) {
|
||||
state = AsyncData(current.copyWith(loadingMore: false));
|
||||
final recovered = state.value ?? current;
|
||||
state = AsyncData(recovered.copyWith(loadingMore: false));
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -152,6 +153,6 @@ final feedsProvider =
|
||||
class FeedsNotifier extends AsyncNotifier<List<BriefingFeed>> {
|
||||
@override
|
||||
Future<List<BriefingFeed>> build() async {
|
||||
return ref.read(newsApiProvider).getFeeds();
|
||||
return ref.watch(newsApiProvider).getFeeds();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user