From d4bef537d960258e6ddf0518de6a2c0023e744e4 Mon Sep 17 00:00:00 2001 From: edwinQQQ Date: Mon, 21 Jul 2025 19:14:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0FeedListView=E4=BB=A5?= =?UTF-8?q?=E4=BD=BF=E7=94=A8ViewStore=E7=AE=A1=E7=90=86=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将FeedListView中的状态管理从store转换为viewStore,提升代码可读性和一致性。 - 移除不必要的本地状态isEditFeedSheetPresented,简化视图逻辑。 - 更新sheet呈现逻辑,确保与viewStore的状态绑定,增强用户体验。 --- yana/Views/FeedListView.swift | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/yana/Views/FeedListView.swift b/yana/Views/FeedListView.swift index 9315380..44ae472 100644 --- a/yana/Views/FeedListView.swift +++ b/yana/Views/FeedListView.swift @@ -4,10 +4,8 @@ import ComposableArchitecture struct FeedListView: View { let store: StoreOf - @State private var isEditFeedSheetPresented = false // 本地状态用于 sheet - var body: some View { - WithPerceptionTracking { + WithViewStore(self.store, observe: { $0 }) { viewStore in GeometryReader { geometry in ZStack { // 背景图片 @@ -28,7 +26,7 @@ struct FeedListView: View { .frame(maxWidth: .infinity, alignment: .center) Spacer(minLength: 0) Button(action: { - store.send(.editFeedButtonTapped) + viewStore.send(.editFeedButtonTapped) }) { Image("add icon") .resizable() @@ -54,14 +52,14 @@ struct FeedListView: View { } } .onAppear { - store.send(.onAppear) + viewStore.send(.onAppear) + } + .sheet(isPresented: viewStore.binding( + get: \.isEditFeedPresented, + send: { $0 ? .editFeedButtonTapped : .editFeedDismissed } + )) { + EditFeedView() } -// .sheet(isPresented: store.binding( -// get: \.isEditFeedPresented, -// send: { $0 ? .editFeedButtonTapped : .editFeedDismissed } -// )) { -// EditFeedView() -// } } } }