You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不修改应用现有结构 如何让SwiftUI的ContentView_Previews正常运行

问题根源

你当前的预览无法运行是因为PreviewProvider的previews是静态属性,而你定义的@State var function是ContentView_Previews的实例属性,静态上下文无法直接访问实例成员,因此会触发编译错误。

解决方法

不需要修改你现有的App和ContentView业务代码,只需要调整预览部分的代码,把@State变量放在previews计算属性的内部作用域即可,修改后的预览代码如下:

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        // 局部定义State变量,适配静态上下文要求
        @State var function:(() -> Void)? = {}
        return ContentView(myFunction: $function)
    }
}

这个修改完全保留了你原有嵌套同类型子对象、父对象调用子对象方法的逻辑,不会改动任何业务层的代码结构。

内容的提问来源于stack exchange,提问作者Degtiarev Aleksei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:45:03