问题描述
我正在尝试接收文本字段文本并将其发送到另一个结构。但是得到这个错误。 同样,当我尝试调用.onRecieve(Just(text)}数据时,... Xcode无法理解什么是正义。
struct CardInfo : View {
@State var creditCard : CreditCard
@State var isSaved: Bool = false
@State private(set) var text = ""
var body: some View {
vstack {
CustomTextField(data: $text,tFtext: "Kartin Uzerindeki Isim",tFImage: "user")
.textContentType(.givenname)
.onReceive(text) { data in
creditCard.cardOwnerName = text
}
CustomTextField(data: $text,tFtext: "Kredi Kart Numarasi",tFImage: "credit")
.textContentType(.oneTimeCode)
.keyboardType(.numberPad)
HStack {
CreditCardDateTextField(tFtext: "",tFImage: "date")
.textContentType(.creditCardNumber)
Spacer()
Text("")
.overlay(
Rectangle()
.frame(width: 70,height: 53))
Text("|")
.foregroundColor(.black)
CustomTextField(data: $text,tFtext: "CCV",tFImage: "")
.textContentType(.creditCardNumber)
}
.foregroundColor(Color(#colorLiteral(red: 0.9647058824,green: 0.9725490196,blue: 0.9882352941,alpha: 1)))
Group {
CustomTextField(data: $text,tFtext: "Kart Ismi",tFImage: "cardEdit")
Spacer()
Button(action: {
self.isSaved.toggle()
},label: { CustomButton(title: "Kaydet",icon: .none,status: .enable)
})
}
}
.edgesIgnoringSafeArea(.all)
.padding()
}
}
解决方法
您不能在状态上使用.onReceive
,需要使用Just
框架中定义的发布者,例如Combine
,因此需要导入它。
import Combine
...
CustomTextField(data: $text,tFtext: "Kartin Uzerindeki Isim",tFImage: "user")
.textContentType(.givenName)
.onReceive(Just(text)) { data in
creditCard.cardOwnerName = text
}