SwiftUI - как я могу вызвать функцию в моем представлении? - PullRequest
2 голосов
/ 03 августа 2020

Я использую SwiftUI / Swift уже неделю, и мне это нравится. Теперь у меня проблема. Я хочу вызвать функцию из моего представления, но получаю эту ошибку

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

Это код:

struct testView: View {
    
    
    var body: some View {
        VStack {
            Text("TextBox")
            Text("SecondTextBox")
            self.testFunction()
        }
    }
    
    func testFunction() {
        print("This is a Text.")
    }
    
}

Я не понимаю. На других языках это намного проще и может работать именно так. Кто-нибудь может мне помочь? Swift для меня новинка: D

1 Ответ

1 голос
/ 03 августа 2020

Между тем вот места (не все), где / как вы можете вызвать функцию

    init() {
        self.testFunction()     // non always good, but can
    }

    var body: some View {
        self.testFunction()            // 1)
        return VStack {
            Text("TextBox")
               .onTapGesture {
                  self.testFunction()    // 2)
               }
            Text("SecondTextBox")
        }
        .onAppear {
            self.testFunction()     // 3)
        }
        .onDisappear {
            self.testFunction()     // 4)
        }
    }

... и так далее

...