如何解决使用绑定从常规类函数修改SwiftUI @State
我正在尝试创建一个常规类函数,该函数需要一个可选的View
作为参数。想法是该函数将修改布尔值以禁用/启用SwitUI func executeTask(inProgress: Binding<Bool>? = nil)
{
inProgress = true // Error
// ...
inProgress = false // Error
}
,而无需回调块。
@Binding var inProgress: Bool
错误:
不能赋值:'inProgress'是一个'let'常量
我还试图通过在类中创建oldProduct.map(p => p.quantity++);
来模仿SwiftUI的行为,对其进行分配,然后运气不佳地对其进行修改。
如果有帮助,我也可以使用非可选的'inProgress',但到目前为止没有帮助。
解决方法
要更改Binding
的值,应将新值分配给其wrappedValue
属性。
尝试一下:
func executeTask(inProgress: Binding<Bool>? = nil)
{
inProgress?.wrappedValue = true
}
,
Binding
是一个特殊的包装,它可以通过.wrappedValue
这是固定的变体(已通过Xcode 12测试)
func executeTask(inProgress: Binding<Bool>? = nil) {
// optional chain
inProgress?.wrappedValue = true
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。