In the following code, background color of the ContentView
doesn't change after two seconds.
struct ContentView: View {
@State private var bool: Bool = false
var body: some View {
NavigationStack(root: {
Group(content: {
if bool {
Color.red
} else {
Color.blue
}
})
.onAppear(perform: {
DispatchQueue.main.asyncAfter(deadline: .now() 1, execute: {
print(">>>")
bool = true
})
})
})
}
}
However, when replacing NavigationStack(root: {
with NavigationView(content: {
, the problem disappears.
Is anyone facing the same problem, or am I doing something wrong? I am using XCode 14.0 beta 2 (14A5229c)
, and running it on iOS 16.0 (20A5303i).
Issue happens on both, simulator and physical device.
CodePudding user response:
Who knows... may be it is intentional may be it is a bug, submit feedback to Apple.
Meanwhile here is a workaround, tested with Xcode 14 / iOS 16
NavigationStack {
if bool {
Color.red
} else {
Color.blue
}
}
.id(bool) // << here !!
*BTW, Group
is not needed anymore in such cases.