【问题标题】:Modifying environment object for previews?修改预览的环境对象?
【发布时间】:2020-04-28 05:48:49
【问题描述】:

我正在使用环境对象将视图模型传递给视图。为了预览不同的状态,在将环境对象传递到预览之前,如何更改环境对象中的某些属性?

我想做这样的事情,但这不起作用:

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)
    }
}

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    这是可能的方法

    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
                }())
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      相关资源
      最近更新 更多