Swiftui 文本中的快捷键值不为’;不变
我不明白为什么文本值没有改变。如果删除文本字段,文本值将发生更改:/combine或SwiftUI是否缺少某些内容Swiftui 文本中的快捷键值不为’;不变,swiftui,Swiftui,我不明白为什么文本值没有改变。如果删除文本字段,文本值将发生更改:/combine或SwiftUI是否缺少某些内容 struct ContentView2:视图{ @国家私有变量numTouches:Int=0 @国家私有变量num:String=“” var body:一些观点{ VStack{ 按钮(“请触摸我”){ self.numTouches+=1 } 文本(“\(numTouches)”) TextField(“Hello输入一个数字”,text:$num) }.onReceive(
struct ContentView2:视图{
@国家私有变量numTouches:Int=0
@国家私有变量num:String=“”
var body:一些观点{
VStack{
按钮(“请触摸我”){
self.numTouches+=1
}
文本(“\(numTouches)”)
TextField(“Hello输入一个数字”,text:$num)
}.onReceive(Just(num)){newValue in
如果newValue==“”{
self.numTouches=0
}否则{
self.numtouchs=Int.init(newValue)!
}
}
}
}
发生的情况是,当触摸按钮时,它会增加numTouches
,从而导致视图主体重新渲染.onReceive
订阅Just
发布者,该发布者立即发布值num
,该值在开始时为空”
,并将numtouchs
设置回0
听起来您实际上只有一个变量,它是从两个地方更新的:
- 通过
TextField
- 通过
的操作按钮
@State var numTouches:Int
:
struct ContentView2: View{
@State private var numTouches: Int = 0
var body: some View {
VStack{
Button("Touch me pls"){
self.numTouches += 1
}
Text("\(numTouches)")
TextField("Hello enter a number",
text: $numTouches, formatter: NumberFormatter()))
// .keyboardType(.numberPad) // uncomment for number pad keyboard
}
}
}
发生的情况是,当触摸按钮时,它会增加
numTouches
,这会导致视图的主体重新渲染.onReceive
订阅Just
发布者,该发布者立即发布值num
,该值在开始时为空”
,并将numtouchs
设置回0
听起来您实际上只有一个变量,它是从两个地方更新的:
- 通过
TextField
- 通过
的操作按钮
@State var numTouches:Int
:
struct ContentView2: View{
@State private var numTouches: Int = 0
var body: some View {
VStack{
Button("Touch me pls"){
self.numTouches += 1
}
Text("\(numTouches)")
TextField("Hello enter a number",
text: $numTouches, formatter: NumberFormatter()))
// .keyboardType(.numberPad) // uncomment for number pad keyboard
}
}
}
numtouchs
更新,然后立即恢复到由于onReceive(Just(num))
而导致的num
。你到底想实现什么?我想要两件事,首先我想写一个数字,然后触摸按钮,写的数字会增加,另一种情况是如果我不写任何数字,当我按下按钮时,文本字段会从0增加到按下按钮的次数numtouchs
更新,然后立即返回到由于onReceive(Just(num))引起的num
。你到底想实现什么?我想要两件事,首先我想写一个数字,然后触摸按钮,写的数字会增加,另一种情况是如果我不写任何数字,当我按下按钮时,文本字段会从0增加到按下的次数