Skip to content

Commit f76f693

Browse files
committed
调整 riverpod 细节
1 parent f0de6d0 commit f76f693

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

lib/page/trend/trend_user_provider.dart

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,27 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
77
88
part 'trend_user_provider.g.dart';
99

10-
@riverpod
10+
///无需释放,这样内存里就会保存着列表,下次进来不会空数据
11+
@Riverpod(keepAlive: true)
1112
class TrendCNUserList extends _$TrendCNUserList {
12-
List<SearchUserQL> data = [];
1313

14+
///如果调用 ref.refresh ,数据会被重置
1415
@override
15-
List<SearchUserQL> build() => data;
16+
List<SearchUserQL> build() {
17+
return [];
18+
}
1619

1720
void setList(List<SearchUserQL> list) {
18-
data = list;
19-
state = data;
21+
state = list;
2022
}
2123

2224
void addList(List<SearchUserQL> list) {
23-
data.addAll(list);
24-
25-
///需要 toList 为新的列表,不然不会触发更新
26-
state = data.toList();
25+
state.addAll(list);
26+
///需要为新的列表,不然不会触发更新
27+
state = [...state, ...list];
2728
}
2829

2930
void clear() {
30-
data.clear();
3131
state = [];
3232
}
3333
}
@@ -46,7 +46,8 @@ Future<(List<SearchUserQL>, String)?> searchTrendUserRequest(
4646
} else {
4747
trendRef.addList(value.$1);
4848
}
49-
var _ = ref.refresh(trendCNUserListProvider.notifier);
49+
// 这里 refresh 会导致数据在更新后又被清空
50+
//var _ = ref.refresh(trendCNUserListProvider.notifier);
5051
return result.value;
5152
}
5253
return null;

lib/page/trend/trend_user_provider.g.dart

Lines changed: 7 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)