I get the following error:
Cannot assign value of type 'Binding' to type 'String'
How to fix it? Please help.
struct TextFieldWithClear: View {
var title: String
@Binding var text: String
init(_ title: String, text: Binding<String>) {
self.title = title
self.text = $text // ERROR: Cannot assign value of type 'Binding<String>' to type 'String'
}
var body: some View {
HStack {
TextField("Title", text: $text)
Image(systemName: "xmark.circle.fill")
.onTapGesture { text = "" }
}
}
}
Replace:
self.text = $text
with:
self._text = text
You need to inject the value of text into the wrapped value of self.text. The underscore "opens" the Binding for you to change its wrapped value. Don't need to use $ in your initializer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With