首页 > 解决方案 > @State 更改时 SwiftUI 视图不更新

问题描述

使用@State 时,我真的很难获得一个简单的 SwiftUI 文本视图来更新。代码如下。任何帮助表示赞赏(我确信这很愚蠢,但我对这一切都很陌生 - 甚至无法正确复制/粘贴代码片段)。谢谢你。

struct ContentView : View {

    @State var tappedToggle: Bool = false

    var body: some View {
        Text("First: \(printRandomFactoid())").multilineTextAlignment(.center)
        .onTapGesture {
            self.tappedToggle.toggle()
            Text("Latest... \r \(printRandomFactoid())").multilineTextAlignment(.center)
        }
    }
}

标签: swiftswiftuistate

解决方案


视图永远不应该在动作闭包中......意图可能是

struct ContentView : View {

    @State var tappedToggle: Bool = false

    var body: some View {
        Text(tappedToggle ? "First: \(printRandomFactoid())" : "Latest... \r \(printRandomFactoid())")
           .multilineTextAlignment(.center)
           .onTapGesture {
              self.tappedToggle.toggle()
        }
    }
}

推荐阅读