Swift属性在结构初始化期间无法填充



我有以下代码。

出于某种原因,当我初始化VerifyPhoneView类时,它会正确地打印verificationID,但self.verificationID仍然是空字符串。

是什么原因造成的?

struct VerifyPhoneView: View {
private var phoneNumber: String
@State private var verificationID: String = ""
init(phoneNumber: String, verificationID: String) {
self.phoneNumber = phoneNumber
print ("Initializer, verificationID: " + verificationID)
self.verificationID = verificationID
print ("Initializer, self.verificationID: " + self.verificationID)
}
}

在这种情况下,不需要状态的默认值。这里有一个解决方案:

struct VerifyPhoneView: View {
private var phoneNumber: String
@State private var verificationID: String    // << here !!
...
init(phoneNumber: String, verificationID: String) {
self.phoneNumber = phoneNumber
print ("Initializer, verificationID: " + verificationID)
_verificationID = State(initialValue: verificationID) // << here !!
print ("Initializer, self.verificationID: " + self.verificationID)
}

最新更新