SwiftUI中点击加减按钮变量更新但显示文本不更新问题求助
解决SwiftUI计数APP视图不更新问题
你的问题核心是没用到SwiftUI的状态管理机制,全局变量的变化不会触发视图刷新。SwiftUI需要通过@State这类属性包装器跟踪状态变化,一旦状态更新,视图会自动重新渲染。
修正后的代码:
import SwiftUI struct ContentView: View { // 用@State包装状态变量,让SwiftUI跟踪它的变化 @State private var count = 2 var body: some View { VStack { Button("+") { count += 1 } Button("-") { count -= 1 } // 直接用字符串插值显示当前计数,无需额外的amount变量 Text("\(count)") } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
关键修改点:
- 移除全局的
dats和amount变量,把计数变量count放在ContentView内部并用@State修饰 - 按钮点击直接修改
count,无需额外做字符串转换 - Text通过
\(count)直接显示当前值,每次count变化时,SwiftUI会自动更新这个Text的内容
这样修改后,点击加减按钮,屏幕上的数字就会同步更新了。
内容的提问来源于stack exchange,提问作者finnddd
相关产品推荐
相关产品推荐

