在下面的代码中,ContentView的背景色在两秒钟后不变.

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
                    })
                })
        })
    }
}

然而,当用NavigationView(content: {替换NavigationStack(root: {时,问题消失了.

是有人面临同样的问题,还是我做错了什么?我使用的是XCode 14.0 beta 2 (14A5229c),在iOS 16.0 (20A5303i).上运行它,这个问题在模拟器和物理设备上都会发生.

推荐答案

谁知道...可能是故意的,也可能是bug,向苹果提交反馈.

同时,这里有一个变通方法,用Xcode 14/iOS 16测试

    NavigationStack {
        if bool {
            Color.red
        } else {
            Color.blue
        }
    }
    .id(bool)             // << here !!

*顺便说一句,在这种情况下不再需要Group.

Ios相关问答推荐

设置堆栈视图的所有属性

Jenkins node 无法运行fastlane命令-未找到命令

自定义UIControl不适用于UITapGestureRecognizer

SwiftUI标题/标题文本背景 colored颜色 屏幕宽度

如何使用 SwiftData 从列表中删除子项目?

Swift locationManager.requestWhenInUseAuthorization() 不提示用户

错误地提取问题的答案选项

uikit中如何触发swiftui功能

我无法使用 Swift 将文件上传到 firebase

xcode-select:找不到clang

视图之间的 SwiftUI 过渡,没有过渡

Xcode 14 弃用了位码 - 但为什么呢?

Swift如何表示单位转换的标准大气压

在设备上卸载 ios 应用程序后如何在 ios 中保留 identifierForVendor?

在原生和 phonegap 之间挣扎,简单的应用需求

为信用卡输入格式化 UITextField,例如 (xxxx xxxx xxxx xxxx)

单击 GoogleSignIn 按钮时应用程序崩溃

iOS应用程序每隔一次启动就会崩溃,找不到错误

/usr/bin/codedesign 失败,退出代码为 1

openURL:在 iOS 10 中已弃用