[英]Binding variable in ForEach not update
单击另一张电影卡时,我想更改评级明星的图像。 其他文字信息会发生变化,但星级不会发生变化。 我正在使用RatingView
创建评级星堆栈。 我首先展示的是未评级的,然后是评级的明星。 但是当我更换电影卡时,星星的颜色并没有改变
import SwiftUI
struct RatingView: View {
@Binding var movie : Movie
var body: some View {
HStack{
ForEach(0 ..< Int(movie.getLikers())) { item in
Image("star")
.scaleEffect(1.5)
.padding(10)
}
ForEach(0 ..< Int(movie.getDislikers())) { item in
Image("star.fill")
.scaleEffect(1.5)
.padding(10)
}
Text(movie.imageName)
}
}
}
更改您的ForEach
构造函数以使用ForEach([Hashable])
如果movie.getDislikers()
返回[Hashable]
并且Movie
是某种观察到的 object,它将更新。 这是我在示例应用程序中的解决方案。
struct SomeStruct: Hashable {
}
struct Sample: View {
@Binding var store: [SomeStruct]
var body: some View {
List {
Section {
ForEach(store, id: \.self) { (foo: SomeStruct) in
HStack {
Text(foo)
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.