[英]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.