在空白项目上两次调用onAppear的问题

时间:2020-07-11 15:34:35

标签: xcode core-data swiftui cloudkit

在空白项目(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

编辑

这仅在“画布”预览中发生。我在模拟器中得到了预期的行为。

0 个答案:

没有答案