Skip to content

Commit

Permalink
调整 riverpod 细节
Browse files Browse the repository at this point in the history
  • Loading branch information
CarGuo committed Mar 1, 2025
1 parent f0de6d0 commit f76f693
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 16 deletions.
23 changes: 12 additions & 11 deletions lib/page/trend/trend_user_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,27 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'trend_user_provider.g.dart';

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

///如果调用 ref.refresh ,数据会被重置
@override
List<SearchUserQL> build() => data;
List<SearchUserQL> build() {
return [];
}

void setList(List<SearchUserQL> list) {
data = list;
state = data;
state = list;
}

void addList(List<SearchUserQL> list) {
data.addAll(list);

///需要 toList 为新的列表,不然不会触发更新
state = data.toList();
state.addAll(list);
///需要为新的列表,不然不会触发更新
state = [...state, ...list];
}

void clear() {
data.clear();
state = [];
}
}
Expand All @@ -46,7 +46,8 @@ Future<(List<SearchUserQL>, String)?> searchTrendUserRequest(
} else {
trendRef.addList(value.$1);
}
var _ = ref.refresh(trendCNUserListProvider.notifier);
// 这里 refresh 会导致数据在更新后又被清空
//var _ = ref.refresh(trendCNUserListProvider.notifier);
return result.value;
}
return null;
Expand Down
12 changes: 7 additions & 5 deletions lib/page/trend/trend_user_provider.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit f76f693

Please sign in to comment.