我有一个默认视图ContentView:
var body: some View {
return Group {
if observable.operationToSign.isEmpty {
Ring(fillPoint: fillPoint).stroke(colors[colorIndex], lineWidth: 10)
.frame(width: 100, height: 100)
.onAppear() {
withAnimation(self.animation) {
self.fillPoint = 1.0
_ = self.timer
}
self.booted = true
}
} else {
AuthorizationView(observable: observable)
}
}
}
在某些情况下,它会加载另一个视图AuthorizationView:
var body: some View {
return Group {
if observable.operationToSign.isEmpty {
Text("Nothing to sign")
ContentView(observable: self.observable)
} else {
VStack {
Text("Sign payment")
HStack {
Button(
action: {
signPayment(observable: self.observable)
},
label: { Text("✅") }
)
Button(
action: {
// do something
print("not implemented")
},
label: { Text("?♂️") }
)
}
}
}
}
}
如您所见,当没有要签署的付款时,它将第一个视图ContentView加载回原位。发生这种情况时,动画不会在ContentView中开始,而是会显示一个完整的圆圈,而不是一个正在加载的微调器,而在启动应用程序时,微调器会按预期在ContentView中工作。
有人知道为什么在加载ContentView时不触发.onAppear吗?