feat: 更新FeedListView以使用ViewStore管理状态
- 将FeedListView中的状态管理从store转换为viewStore,提升代码可读性和一致性。 - 移除不必要的本地状态isEditFeedSheetPresented,简化视图逻辑。 - 更新sheet呈现逻辑,确保与viewStore的状态绑定,增强用户体验。
This commit is contained in:
@@ -4,10 +4,8 @@ import ComposableArchitecture
|
|||||||
struct FeedListView: View {
|
struct FeedListView: View {
|
||||||
let store: StoreOf<FeedListFeature>
|
let store: StoreOf<FeedListFeature>
|
||||||
|
|
||||||
@State private var isEditFeedSheetPresented = false // 本地状态用于 sheet
|
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
WithPerceptionTracking {
|
WithViewStore(self.store, observe: { $0 }) { viewStore in
|
||||||
GeometryReader { geometry in
|
GeometryReader { geometry in
|
||||||
ZStack {
|
ZStack {
|
||||||
// 背景图片
|
// 背景图片
|
||||||
@@ -28,7 +26,7 @@ struct FeedListView: View {
|
|||||||
.frame(maxWidth: .infinity, alignment: .center)
|
.frame(maxWidth: .infinity, alignment: .center)
|
||||||
Spacer(minLength: 0)
|
Spacer(minLength: 0)
|
||||||
Button(action: {
|
Button(action: {
|
||||||
store.send(.editFeedButtonTapped)
|
viewStore.send(.editFeedButtonTapped)
|
||||||
}) {
|
}) {
|
||||||
Image("add icon")
|
Image("add icon")
|
||||||
.resizable()
|
.resizable()
|
||||||
@@ -54,14 +52,14 @@ struct FeedListView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onAppear {
|
.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()
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user