swift - 如何在 SwiftUI/Combine 中将订阅者附加到状态或绑定(bind)?

标签 swift binding state combine publisher

使用联合收割机Publisher ,每当值发生变化时,我可以使用以下代码来调用闭包:

let cancellable = x.sink { value in … }

如何使用标记为 @State 的变量实现相同的行为或@Binding

最佳答案

更新

下面的答案似乎不再起作用,而是可以在属性上使用 .onChange(of:)

.onChange(of: someProperty) { value in
    //use new value for someProperty
 }

您可以像任何普通属性一样使用 willSetdidSet

@State private var someProperty: String {
    didSet {

    }

    willSet {

    }
}

关于swift - 如何在 SwiftUI/Combine 中将订阅者附加到状态或绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63863645/

相关文章:

ios - 数组中字符串的 UISearchBar

ios - 如何在 Swift 中临时存储图像和字符串?

wpf - 从 DataTemplate 内的资源绑定(bind)

java - 将 java 类作为闭包绑定(bind)到 groovy 脚本中

flutter - 如何在Flutter中从父窗口小部件调用子窗口小部件的initState()方法

javascript - 如何使用 Angular Ui-Router 减少具有相同 'states' 的 'templateUrl' 的数量

xcode - 在 Swift 中使用 "+"作为字符串

ios - 日志 - DispatchQueue - self.tableView.reloadData() 未被调用

javascript - OpenUI5/SAPUI5 中表达式绑定(bind)中的函数调用

qt - 在过渡动画完成后更改状态