如何解决无法更新计算属性以在Xcode 12中显示工作表的问题之前已解决
此代码具有以下问题:第一次单击任何列表项都会显示带有“ This is sheet 0”的表-表示@State属性“ var example:Int”不会作为按钮代码的一部分进行更新(退出实时预览并重新启动,将重现该问题。
你知道这里发生了什么吗??
代码:
import SwiftUI
struct testing2: View {
@State private var showSheet = false
@State var example: Int = 0
var computedItem: String {
"This is sheet \(example)"
}
var body: some View {
List(0 ..< 5) { item in
Button("List item: \(item)") {
self.example = item
showSheet.toggle()
}
}
.sheet(isPresented: $showSheet,content: {
Text("\(computedItem)")
})
}
}
解决方法
不确定这是否是最佳答案,但这对我有用:
struct ContentView: View {
@State private var showSheet = false
@State var example: Int = 0
@State var computedItem: String = ""
var body: some View {
List(0 ..< 5) { item in
Button("List item: \(item)") {
self.example = item
self.computedItem = "This is sheet " + String(self.example)
showSheet.toggle()
}
}
.sheet(isPresented: $showSheet) {
sheetView(computedItem: $computedItem)
}
}
}
struct sheetView: View {
@Binding var computedItem: String
var body: some View {
Text(self.computedItem)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。