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
可能不起作用,因为您需要处理 AdminView
中 URL?
的大小写。我不知道你的 AdminView
里面有什么,但是当 immagine
为 nil 到 return 时处理路径 EmptyView
可以解决问题。
在我的 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
可能不起作用,因为您需要处理 AdminView
中 URL?
的大小写。我不知道你的 AdminView
里面有什么,但是当 immagine
为 nil 到 return 时处理路径 EmptyView
可以解决问题。