텍스트 값이 변경되지 않는 이유를 이해할 수 없습니다. TextField를 제거하면 Text 값이 변경됩니다. 결합 또는 SwiftUI에 대해 뭔가 빠졌습니까?
struct ContentView2: View{
@State private var numTouches: Int = 0
@State private var num: String = ""
var body: some View {
VStack{
Button("Touch me pls"){
self.numTouches += 1
}
Text("\(numTouches)")
TextField("Hello enter a number", text: $num)
}.onReceive(Just(num)) { newValue in
if newValue == "" {
self.numTouches = 0
} else {
self.numTouches = Int.init(newValue)!
}
}
}
}
버튼을 터치하면 버튼이 증가 numTouches
하여 뷰의 본문이 다시 렌더링됩니다. 처음 에는 비어 있고로 다시 설정 되는 값을 즉시 게시 .onReceive
하는 Just
게시자를 구독합니다 .num
""
numTouches
0
두 곳에서 업데이트되는 하나의 변수 만있는 것 같습니다.
TextField
Button
의 행동을 통해따라서 단일로 유지하십시오 @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
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다