【问题标题】:SwiftUI "un-bind" a string from a textfieldSwiftUI“取消绑定”文本字段中的字符串
【发布时间】:2020-05-09 23:31:25
【问题描述】:

我正在尝试将文本字段中的字符串存储到 Realm DB 中。不知何故,它不只是保存实际的字符串,而是从绑定中保存某种元文本:

???? 绑定(事务:SwiftUI.Transaction(plist:[]), 位置:SwiftUI.StoredLocation,_value:“约翰 能源部")

我怎样才能将输入的字符串保存到没有周围信息的领域?

这是我的代码:

@State var enteredName: String = "" let realm = try! Realm()

对于文本字段:

TextField("enter your name", text: $enteredName)
   .textFieldStyle(RoundedBorderTextFieldStyle())

对于按钮:

Button(action: {

    let newPerson = Contacts()
    newPerson.name = "\(self.$enteredName)"

    do {
        try self.realm.write {
            self.realm.add(newPerson)
        }
    } catch {
        print("Error saving newPerson \(error)")
    } 
}) {
    Text("Save New Person")   
}

【问题讨论】:

    标签: ios realm swiftui xcode11.4


    【解决方案1】:

    Button 闭包action 中,通过使用$ 符号,您正在发送对enteredName 的绑定引用。您只需要一个普通的引用,您可以通过删除$ 符号来做到这一点。

    你的代码应该是:

    Button(action: {
    
        let newPerson = Contacts()
        newPerson.name = self.enteredName
    
        do {
            try self.realm.write {
                self.realm.add(newPerson)
            }
        } catch {
            print("Error saving newPerson \(error)")
        } 
    }) {
        Text("Save New Person")   
    }
    

    【讨论】:

    • 这非常简单,谢谢@joseph0x4365732E!
    • 没问题,@Daniel。很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2010-11-09
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    相关资源
    最近更新 更多