swift - @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)
}
}
}
解决方案
视图永远不应该在动作闭包中......意图可能是
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()
}
}
}
推荐阅读
- python - TypeError:切片索引必须是整数或 None 或具有 __index__ 方法。网页抓取
- python - 无法从管道绘制树
- java - 设置 JComboBox 时出现空指针异常
- docker - E/runner - 无法启动 WebDriver 会话
- python - 更改表单上模型的默认值
- rdf - 如何知道任何 RDF 的推理/推理级别
- javascript - 如何将 wp_enqueue_script 应用于 wordpress 中的所有帖子
- bash - 打印具有 . 当最后一个字符的长度为 2
- mysql - mysql自定义函数语法
- python - 如何使用 BeautifulSoup 获取 href