如何在我的View中将此变量从类转换为@State
变量?我现在遇到异常:
无法将“绑定”类型的值分配给“字符串”类型
在我的视图内:
struct ContentView: View {
//Error private members
@State var alert = false
@State var error = ""
@EnvironmentObject var manager: HttpAuth
func verify(){
//Cannot assign value of type Binding<String> to type String
self.error = $manager.error
}
}
在我的HttpAuth
班上
class HttpAuth: ObservableObject{
//Error private members
var alert = false
var error: String = ""
..
}
答案 0 :(得分:2)
这里不需要绑定,@State
是一个属性包装器,因此像属性一样分配
func verify(){
self.error = manager.error // no $
}
注意:实际上,您可以直接使用manager.error
,而无需重新映射以提供状态,只需将其设置为@Published
class HttpAuth: ObservableObject{
//Error private members
var alert = false
@Published var error: String = ""
唯一的警告(!),您必须在主队列上修改此已发布的error
,然后View内部的所有用法都会自动更新。