【问题标题】:Do I need "PreviewProvider" to use use @ObservedObject when building to a device SwiftUI在构建到设备 SwiftUI 时,我是否需要“PreviewProvider”才能使用 @ObservedObject
【发布时间】:2021-03-19 03:59:11
【问题描述】:

这是我的代码的样子:

import SwiftUI

struct dummy: View {
    var job: Job
    @ObservedObject var jobViewModel: JobViewModel
    
    var body: some View {
        Text("Placeholder for job details, will not exists in production, please delete")
        VStack(alignment: .leading){
            HStack{
                Text("Boat Name")
                    Spacer()
                        .frame(width: 50, height: 50)
                Text(job.boatName)
            }
        

            /*HStack{
                Text("Job Time")
                    Spacer()
                        .frame(width: 50, height: 50)
                Text(jobTime)
            }*/
            HStack{
                Text("Job Type")
                    Spacer()
                        .frame(width: 50, height: 50)
                Text(job.job)
            }
            HStack{
                Text("Owner's Name")
                Spacer()
                    .frame(width: 50, height: 50)
                Text(job.ownerName)
                //Text(job.time)
            }
            
            Button("Complete Job"){
                jobViewModel.complete(job)
            }.frame(width: 200)
        }
        
        
        
        
    }
}



/*struct dummy_Previews: PreviewProvider {
    static var previews: some View {
        dummy(job: Job[0])
    }
}*/
//foundout to get rid of this from below:
//https://medium.com/swift-productions/create-list-navigation-using-swiftui-c63534355fb1
//If i didn't get rid of it, it would case issues

如果我不使用“PreviewProvider”,它会起作用,如果我保持它,它会抛出错误。每次尝试应用程序时,我都会直接构建到设备上。我需要这个才能让 ObservedObject 工作吗?

【问题讨论】:

    标签: swiftui swiftui-list swiftui-navigationlink observableobject


    【解决方案1】:

    如果您想使用预览功能,您必须为jobViewModel 参数提供某种实例。

    您还没有向JobViewModel 显示代码,但它可能就像这样做一样简单:

    dummy(job: Job(), jobViewModel: JobViewModel())
    

    这是假设 Job 和 JobViewModel 不接受任何参数——如果他们接受,您也必须为这些参数填写值。 Xcode 应该能够帮助您自动完成以向您显示它们的参数可能是什么。

    没有预览不会影响您在模拟器或设备上以非预览模式运行应用的能力。

    【讨论】:

    • 我知道你是新来的。如果这回答了您的问题,您可以点击绿色复选标记接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    相关资源
    最近更新 更多