SwiftUI 预览页面,可绑定URL?

SwiftUI preview page, bindable URL?

在我的 AdminView_Previews 上,我正在尝试显示我的 AdminView,并且需要从视图传递类型为 [=16= 的名为 userInfo 的可绑定对象].

UserModel 有一个来自 URL?

的名为 immagine 的变量

这是我的预览:

struct AdminView_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            NavigationView{
            AdminView(dm: DataManager(), userInfo: bindModelUserInfo())
            }
            
            NavigationView{
            AdminView(dm: DataManager(), userInfo: bindModelUserInfo())
            }
            .previewDisplayName("Test")
            .background(Color(.systemBackground))
            .environment(\.colorScheme, .dark)
        }
    }
}

我的bindingModelUserInfo():

func bindModelUserInfo() -> Binding<UserModel?> {
    
    var variabile : UserModel = UserModel(username: "dm1886", email: "dsadsa@gmail.com", userID: "test", adminLevel: "user", immagine: nil )
    
    let boolVariableBinding : Binding<UserModel?> = Binding(get: { variabile },
                                                            set: { variabile = [=12=]! })
    return boolVariableBinding
}

如果我将 nil 传递给 immagine,预览将无法加载。

知道如何解决这个问题吗?如何将 URL immagine 传递给预览?

在模拟器应用程序上一切正常。

您可以创建一个 @State 变量,像这样输入到 userInfo 中。

struct AdminView_Previews: PreviewProvider {

    @State var mockUserInfo: UserModel = UserModel(username: "dm1886", 
                                                   email: "dsadsa@gmail.com", 
                                                   userID: "test", 
                                                   adminLevel: "user", 
                                                   immagine: nil)

    static var previews: some View {
        Group {
            NavigationView{
            AdminView(dm: DataManager(), userInfo: $mockUserInfo)
            }
            
            NavigationView{
            AdminView(dm: DataManager(), userInfo: $mockUserInfo)
            }
            .previewDisplayName("Test")
            .background(Color(.systemBackground))
            .environment(\.colorScheme, .dark)
        }
    }
}

能否也分享一下 AdminView 的代码?变量 immagine 可能不起作用,因为您需要处理 AdminViewURL? 的大小写。我不知道你的 AdminView 里面有什么,但是当 immagine 为 nil 到 return 时处理路径 EmptyView 可以解决问题。