微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法更新计算属性以在Xcode 12中显示工作表的问题之前已解决

如何解决无法更新计算属性以在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 举报,一经查实,本站将立刻删除。