首页 > 解决方案 > 为什么警报解除后@state被重置

问题描述

在这里完成 SwiftUI 初学者。我正在查看这个示例,并试图了解@state变量的生命周期。

showingAlert被初始化为false并设置为true当点击按钮时。我难以理解的部分是为什么它会重置回false警报解除时?我没有将其设置为false 任何地方。

我希望它会留下来true

@State private var showingAlert = false

var body: some View {
   Button(action: { self.showingAlert = true }
   ) { 
     Text("Show Alert")
   }
   .alert(isPresented: $showingAlert) {
     Alert(title: Text("Important message"))
   }
}

标签: iosswiftswiftui

解决方案


因为,根据定义,如果解除警报,则不再显示警报。$showingAlert是一个绑定——它在两个方向上移动数据。它的值总是与是否显示警报相关;这就是绑定的意思。


推荐阅读