swift - SwiftUI 里面的数学运算(部分视图)
问题描述
我想问你一个关于在视图中使用数学运算的问题。
struct MyMenu: View {
var cnt: Int = 0
let colors: [Color] = [.red, .green, .blue]
var body: some View {
ForEach(colors, id: \.self) { color in
Text(color.description)
.padding()
.background(color)
cnt += 1
}
}
}
它给了我一个错误:
类型 '()' 不能符合 'View';只有结构/枚举/类类型可以符合协议
我不明白 SWIFTUI 语法有什么问题?为什么不能在某些 View中使用简单的数学运算。
有什么解决办法吗?谢谢!
解决方案
你的体内不能有“常规”代码,因为 SwiftUI 期望你有声明性代码来在那里生成 UI。
如果您想增加您的 cnt 属性,您需要在按钮操作中执行此操作,例如,如下所示:
Button(action: {
cnt += 1
}) {
Text("Click me to perform any action")
}
不要忘记您的 MyMenu 对象是一个结构,这意味着默认情况下它是不可变的。如果您的 cnt 属性未使用 @State 包装器或任何其他包装器包装,则您将无法更新它,具体取决于您的需要:)
希望这可以帮助!:)
推荐阅读
- excel - VBA项目窗口运行宏正确,但是,Sheet1上的按钮不
- python - 在 Pandas 中删除 NaN 时遇到问题
- flutter - 是否可以使用 AR 在 Flutter 中构建客户支持以及如何构建?
- django - django rest:测试文件上传但 request.data 为空
- python - 如何获得两个以上列表的对称差异?
- c# - Firebird 嵌入式多用户支持
- java - 有没有办法从 Java 程序中调用 checkstyle?
- python - 使用 Python 处理原始 POST 数据
- leaflet - Leaflet 聚类 choropleth 区域
- .htaccess - 使用 htaccess 在 url 中强制 index.php