SwiftUI:绑定不能分配属性?

2w2cym1i  于 12个月前  发布在  Swift
关注(0)|答案(1)|浏览(117)

这是我的全部代码:

import SwiftUI
import Observation

struct CarModel: Identifiable {
    var id = UUID()
    var name:String
}

@Observable class TestModel {
    
    var cars = [CarModel(name: "__-1-_1") ]
    
}



struct ContentView: View {
    
    @State var model = TestModel()
    
    var body: some View {
        
        VStack {
            ScrollView {
                LazyVStack {
                    ForEach($model.cars) { c in
                        if c.name.count > 0 { // ERROR -> Cannot assign to property: 'count' is a get-only property
                            CarView(car: c)
                        } else {
                            Text("test")
                        }
                    }
                }
            }
        }
        .padding()
    }
}

#Preview {
    ContentView()
}


struct CarView: View {
    
    @Binding var car:CarModel
    
    var body: some View {
        
        Text("The car \(car.name)")
    }
    
}

字符串
我不知道如何摆脱这个错误。我想做的就是在name上做一个计数,但是绑定把它扔了。
我可以保留绑定,并简单地使用c.name,就像我在这里尝试做的那样,无论是String.count还是任何其他对name的字符串操作,都不起作用。
谢谢你

dly7yett

dly7yett1#

你可以试试这个:在foreach中添加$c

VStack {
        ScrollView {
            LazyVStack {
                ForEach($model.cars) { $c in
                    if c.name.count > 0 {
                        CarView(car: $c )
                    } else {
                        Text("test")
                    }
                }
            }
        }
    }

字符串

相关问题