ios - 为什么警报解除后@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"))
}
}
解决方案
因为,根据定义,如果解除警报,则不再显示警报。$showingAlert
是一个绑定——它在两个方向上移动数据。它的值总是与是否显示警报相关;这就是绑定的意思。
推荐阅读
- php - 在 Woocommerce 档案中将链接按钮添加到可变产品的变体
- python - Python 检查两个或多个列表是否是 List 的子集
- oracle - Oracle:对 regexp_like 表达式的结果进行排序
- c - 为什么我的递归函数即使到达返回(0)也不会停止?
- python - 在 python 中通过循环从一个文本文件到另一个文本文件进行搜索,同时每个搜索项仅返回一个结果
- corda - 在 Windows 上运行 Cordite 网络映射 JAR 时无法运行程序 npm 错误
- c# - 在http-context响应C#中分块下载文件
- mongodb - 从 getMongo 处理器中提取日期时的 $numberlong 格式
- javascript - setTimeout 如何在 JavaScript 中实现 promise?
- angularjs - AngularJS 延迟加载路由无法正常工作