繁体   English   中英

SwiftUI - 组合:在 SwiftUI 中绑定主题

[英]SwiftUI - Combine: Binding Subject in SwiftUI

在我的 viewModel 中,我有一个CurrentValueSubject或一个PassthroughSubject

如何将它们绑定到我的SwiftU中,其中视图需要@Binding<Type>类型的输入。

我试过了,但它不能正常工作:

extension CurrentValueSubject {
  var binding: Binding<Output> {
    Binding(get: {
      self.value
    }, set: {
      self.send($0)
    })
  }
}

您可以使用 .onReceive 修饰符,如下所示:

// View Model
class MyVM {
    var sub: CurrentValueSubject<String, Never>
}
 
// View
struct MyView: View {

    var body: some View {
        Text("Hi..")
        .onReceive(viewModel.sub) { newValue in
            // Here create binding or assign it to @State variable
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM