我对SwiftUI非常陌生,我来自JavaScript背景。我只是搞砸了,我试图做一个简单的程序,这只是增加所显示的数字时按下的值,然后当达到一定的数字文本的变化。我已经尝试了很多事情,但我要么得到错误抱怨使用实例成员在属性初始化器或文本监听变量,但不改变,当我想要它。我知道这可能很愚蠢,但我只是想弄清楚这里发生了什么。
这是我非常有缺陷的代码
import SwiftUI
struct ContentView: View {
@State var num = 0
var body: some View {
var numShow = (String(num))
VStack {
Text(String(numShow))
.padding()
Button {
num += 1
if (num > 5) {
numShow = "test"
}
} label: {
Text("click")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
你需要了解SwiftUI的基础知识。在:https://developer.apple.com/tutorials/swiftui/
上做教程参见:https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
你不能在SwiftUI的任何地方声明像var numShow = (String(num))
这样的东西。这些声明需要放在特殊的位置和函数中。
试试这个:
struct ContentView: View {
@State var num = 0
@State var numShow = "" // <-- here declared as a String
var body: some View {
VStack {
Text(numShow) // <-- here Text takes a String
.padding()
Button {
num += 1
if (num > 5) {
numShow = "test"
}
} label: {
Text("click")
}
}
}
}