SwiftUI.如何在自定义绑定值更改时通知



我有点困惑。我有一些复杂的功能。有几行带有复选框。当您点击行时,ViewModel决定要选择哪些行和取消选择哪些行。我为CheckBox创建了一个自定义绑定,所以它应该根据ViewModel内部的更改来更改状态。我尝试使用.update()方法更新绑定。然而,它什么也没做。未调用绑定的get。

这是我的代码:

let lineIndex = $0 + viewModel.getSectionFirstLineIndex(sectionIndex: sectionIndex)
let line = viewModel.getLine(index: lineIndex)
var checkBoxBinding = Binding<Bool>(
get: {
viewModel.isLineSelected(lineIndex: lineIndex)
}, set: { _ in
fatalError("Not supported")
}
)
HStack {
CheckBox(isSelected: checkBoxBinding)
Text(line)
}.padding(16).onTapGesture {
viewModel.didTapOnLine(lineIndex: lineIndex)
checkBoxBinding.update()
}

您可以使用.onChange(viewModel.$isLineSelected(侦听hstack上的更改,然后在闭包中更改checkBoxBinding的值。

相关内容

  • 没有找到相关文章