簡體   English   中英

ForEach 中的綁定變量未更新

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM