有谁知道为什么self.indexCount
in the ForEach
给出了错误Cannot use mutating getter on immutable value: 'self' is immutable
错误?我可以提供aView
with indexCount
,但是不太方便。我不会改变indexCount。这是 SwiftUI 的错误还是故意的?
struct aView: View {
let array: [[String]]
lazy var indexCount: Int = array[0].count
var body: some View {
VStack {
ForEach(0..<self.indexCount, id: \.self) { index in
Text("Hello World")
}
}
}
}
这是故意的。在 SwiftUI 中,仅@State
变量可以改变。你不能使用lazy var
像那样。将其替换为计算属性:
var indexCount : Int { array[0].count }
无论如何,这更好,因为它总是正确的:indexCount
永远是current大小array[0]
), 然而your方式,该值将冻结在任何count
is the first获取它的时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)