【发布时间】:2021-07-05 03:57:45
【问题描述】:
我有一些项目并在视图上显示项目计数。我有一个切换,可以减少计数/项目列表中显示的内容。当我使用切换时,项目计数不会更新。我在这里想念什么?为简洁起见减少/模拟示例。
struct SampleView: View {
@State var items:[Item]
@State var easyMode:Bool = false
@State var filtered:[Item] = []
init(...) {
// Fill items and filtered array
}
var body: some View {
Toggle(isOn: $easyMode, label:{
Text("Easy mode")
})
.onChange(of: self.easyMode, perform: { value in
filtered = filterItems()
// ^^ This is running but not
// updating stuff
})
// This text field does not update when filter changes
Text(String(filtered.count) + " items")
}
}
我尝试让 filterItems 在 @State var countLabel:String 中生成文本字符串并更新文本,但存在后台线程问题。所以我认为 filterItems 没有做任何事情有一些奇怪之处,因为它在一个单独的线程上。我错过了什么?谢谢!!
【问题讨论】:
标签: swiftui