Прокрутите проблему и отскочите за петлю при обвозании Lazyvstack в навигационном магазинеIOS

Программируем под IOS
Ответить
Anonymous
 Прокрутите проблему и отскочите за петлю при обвозании Lazyvstack в навигационном магазине

Сообщение Anonymous »

Проблема, с которой я сталкиваюсь, возникает при использовании Lazyvstack в рамках NavigationStack. Я хочу использовать функцию PinnedViews:. Ниже приведен код, который я использую, и в конце я разделяю образец проблемы цикла: < /p>

Код: Выделить всё

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
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/795 ... -navigatio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»