Проблема с двойным вызовом onAppear в пустом проекте - PullRequest
1 голос
/ 11 июля 2020

В пустом проекте (Xcode 11.5) метод onAppear вызывается дважды.

struct ContentView: View {
    
    
    @State var hello : Int = 0
    
    init() {
        print("Init")
    }
    
    func appear() {
        self.hello += 1
        print(self.hello)
    }
    
    var body: some View {
        Text("Hello, World!")
            .onAppear(perform: { self.appear() })
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Ожидаемый результат:

Init
1

Фактический результат:

Init
1
1

Не только это, но переменная hello не увеличивается при втором вызове. Его результат - 1 оба раза. Я воспроизвел эту ошибку в отдельных проектах на двух разных компьютерах. Я должен отметить, что в этом проекте включены как Core Data, так и CloudKit

EDIT

Это происходит только в предварительном просмотре Canvas. Я получаю ожидаемое поведение в симуляторах.

...