Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot assign value of type 'Binding<String>' to type 'String'

Tags:

ios

swift

swiftui

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 = "" }
        }
    }
}
like image 421
user14119170 Avatar asked Dec 10 '25 12:12

user14119170


1 Answers

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.

like image 112
HunterLion Avatar answered Dec 13 '25 04:12

HunterLion



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!