Проблема, с которой я сталкиваюсь, возникает при использовании Lazyvstack в рамках NavigationStack. Я хочу использовать функцию PinnedViews:. Ниже приведен код, который я использую, и в конце я разделяю образец проблемы цикла: < /p>
Проблема, с которой я сталкиваюсь, возникает при использовании Lazyvstack в рамках NavigationStack. Я хочу использовать функцию PinnedViews:. Ниже приведен код, который я использую, и в конце я разделяю образец проблемы цикла: < /p> [code]struct SProjectsScreen: View { @Bindable var store: StoreOf
@State private var searchText: String = "" @Binding var isBotTabBarHidden: Bool
@Environment(\.safeArea) private var safeArea: EdgeInsets @Environment(\.screenSize) private var screenSize: CGSize @Environment(\.dismiss) var dismiss
private var isLoading : Bool { store.projects.isEmpty }
var body: some View { NavigationStack(path:$store.navigationPath.sending(\.setNavigationPath)) { ScrollView(.vertical){ LazyVStack(spacing:16,pinnedViews: .sectionHeaders) { Section { VStack(spacing:16) { if isLoading { ForEach(0.. Я использую библиотеку TCA для управления состояниями, так что это My Project Feature Reducer: < /p> import ComposableArchitecture @Reducer struct ProjectsFeature{
@ObservableState struct State: Equatable{ var navigationPath : [Project] = [] var projects : [Project] = [ ] var currentProjectSelected : String? } enum Action{ case setNavigationPath([Project]) case setProjects([Project]) case setCurrentProjectSelected(String?) case popNavigation }
var body: some ReducerOf { Reduce { state, action in switch action { case .setNavigationPath(let navigationPath): state.navigationPath = navigationPath return .none case .setProjects(let projects): state.projects = projects return .none case .setCurrentProjectSelected(let projectName): state.currentProjectSelected = projectName return .none case .popNavigation: if !state.navigationPath.isEmpty { state.navigationPath.removeLast() } state.currentProjectSelected = nil return .none } } } [/code]