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