我正在使用环境对象将视图模型传递给视图。为了预览不同的状态,如何在将环境对象传递给预览之前更改环境对象的某些属性?
我想做这样的事情,但这不起作用:
struct view_Previews: PreviewProvider {
@EnvironmentObject static var authenticationViewModel: AuthenticationViewModel {
get {
let v = authenticationViewModel
v.showResendCodeTimer = true
return v
}
}
static var previews: some View {
SomeView().environmentObject(authenticationViewModel)
}
}
答案 0 :(得分:3)
这是可行的方法
static var previews: some View {
Group {
SomeView().environmentObject({ () -> AuthenticationViewModel in
let v = AuthenticationViewModel()
v.showResendCodeTimer = true
return v
}())
SomeView().environmentObject({ () -> AuthenticationViewModel in
let v = AuthenticationViewModel()
v.showResendCodeTimer = false
return v
}())
}
}