如何在SwiftUI的预览参数中传递类型Namespace.ID?

我正在 SwiftUI 中创建一个带有几个参数的子视图。参数的类型之一是 Namspace.ID。所以我必须通过预览传递 Namespace.ID 类型参数才能在 Xcode 画布中查看视图。我不知道该怎么做。我的代码看起来像这样。

    struct BagView: View {
        var bagData:BagModel
        var animation:Namespace.ID
        var body: some View {
            VStack{
                ZStack{
                    Color(bagData.image)
                        .cornerRadius(15)
                    Image(bagData.image)
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                        .padding(20)
                        .matchedGeometryEffect(id: bagData.image, in: animation)
                }
                Text(bagData.title)
                    .fontWeight(.heavy)
                    .foregroundColor(.gray)
                Text(bagData.price)
                    .fontWeight(.heavy)
                    .foregroundColor(.black)
            }
        }
    }
    
    struct BagView_Previews: PreviewProvider {
        static var previews: some View {
            BagView(bagData: BagModel(image: "bag1", title: "The Bag", price: "$123")) 
// I am getting an error here: Missing argument for parameter 'animation' in call
        }
    }

如何通过解决错误来查看 Canvas 中的视图?

回答

这是可能的方法 - 使用中间测试/预览视图:

struct BagView_Previews: PreviewProvider {
    struct TestView: View {
        @Namespace var ns
        var body: some View {
            BagView(bagData: BagModel(image: "bag1", title: "The Bag", price: "$123"), 
                    animation: ns)
        }
    }
    static var previews: some View {
        TestView()
    }
}


以上是如何在SwiftUI的预览参数中传递类型Namespace.ID?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>