繁体   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