[英]SwiftUI ForEach loop index is always 0
我有一个 ForEach 循环:
ScrollView(.horizontal) {
HStack {
ForEach(0..<instance.values.count, id: \.self) { index in
ValueView(value: $instance.values[index] )
//bookmark set here
.disabled( distributed && (index != 0 && index != instance.values.count - 1 ))
.frame(width: 35)
.controlSize(.mini)
.padding(.horizontal, -4.0)
}
}
}
如果 var distributed
为真,我想禁用除第一行和最后一行之外的所有行。 它不会按预期工作,所有ValueView
启用或禁用。 现在最令人惊讶的事情是:我将断点设置为______________index in @index@
中的控制台______________index in @index@
打印,结果是:
______________index in 0
______________index in 0
______________index in 0
______________index in 0
______________index in 0
______________index in 0
______________index in 0
什么是index
? 为什么它总是0
? 真正奇怪的是, ValueView
中的值是可以的。
索引未更新。 ForEach $0 是索引。 试一试:
ScrollView(.horizontal) {
HStack {
ForEach(0..<instance.values.count, id: \.self) {
ValueView(value: $instance.values[$0] )
//bookmark set here
.disabled( distributed && ($0 != 0 && $0 != instance.values.count - 1 ))
.frame(width: 35)
.controlSize(.mini)
.padding(.horizontal, -4.0)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.