【发布时间】:2020-10-28 11:32:08
【问题描述】:
FirstView Appeared 被打印两次。一次是在视图首次加载时,一次是在选择 NavigationLink 时。
import SwiftUI
struct FirstView: View {
var body: some View {
NavigationView{
ZStack{
Text("FirstView").onAppear(perform: {print("FirstView Appeared")})
NavigationLink(destination: SecondView()) {
Text("Goto SecondView")
}.offset(y: 50)
}
}
}
}
struct SecondView: View {
var body: some View {
Text("SecondView").onAppear(perform: {print("SecondView Appeared")})
}
}
在模拟器和个人设备上的 Xcode 12.0 beta 中运行上面的代码会在选择 NavigationLink 时产生以下输出:
FirstView Appeared
FirstView Appeared
SecondView Appeared
这是 onAppear() 预期行为的重复吗?
如果是这样,在创建 firstview 并返回到 firstview 时加载一些数据的最佳做法是什么(因为 onAppear() 会在离开 firstView 时尝试加载一些数据)
【问题讨论】:
-
这是苹果的问题 - feedbackassistant.apple.com/feedback
标签: navigation swiftui-navigationlink swiftui xcode12