feat: 增强FeedListFeature和MeFeature的首次加载逻辑

- 在FeedListFeature和MeFeature中新增isFirstLoad状态,确保仅在首次加载时请求数据。
- 更新MainView以简化视图切换逻辑,使用isHidden修饰符控制视图显示。
- 新增View+isHidden扩展,提供视图隐藏功能,提升代码可读性和复用性。
This commit is contained in:
edwinQQQ
2025-07-24 10:20:12 +08:00
parent 3a74547684
commit 25fec8a2e6
5 changed files with 32 additions and 31 deletions

View File

@@ -5,6 +5,7 @@ import ComposableArchitecture
struct FeedListFeature {
@Dependency(\.apiService) var apiService
struct State: Equatable {
var isFirstLoad: Bool = true
var feeds: [Feed] = [] // feed
var isLoading: Bool = false
var error: String? = nil
@@ -35,9 +36,8 @@ struct FeedListFeature {
func reduce(into state: inout State, action: Action) -> Effect<Action> {
switch action {
case .onAppear:
// feed
guard !state.isLoaded else { return .none }
state.isLoaded = true
guard state.isFirstLoad else { return .none }
state.isFirstLoad = false
return .send(.fetchFeeds)
case .reload:
//