Я хочу использовать индекс для отображения вида - PullRequest
0 голосов
/ 08 апреля 2020

error Type '()' не может соответствовать 'View'; только типы struct / enum / class могут соответствовать протоколам

Когда указанным числом является число индексов, есть представление для отображения, но возникает ошибка.

Есть ли у вас решение ?

var body: some View {
    VStack(alignment: .center, spacing: 0) {
        ForEach(0..<5, id: \.self) { index in
            if index == 1 { TestView() }
            NormalView()
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Просто оберните блок с условием в Group, как показано ниже (протестировано с Xcode 11.4)

var body: some View {
    VStack(alignment: .center, spacing: 0) {
        ForEach(0..<5, id: \.self) { index in
            Group {
                if index == 1 { TestView() }
                NormalView()
            }
        }
    }
}
0 голосов
/ 08 апреля 2020

Часть id, чтобы SwiftUI мог уникально идентифицировать каждый элемент в массиве, но у вас нет array, поэтому вам не нужно поле id.

    var body: some View {
        VStack(alignment: .center, spacing: 0) {
            ForEach(0..<5) { index in
                if index == 1 { TestView() } else { EmptyView() }
                NormalView()
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...