jas*_*hng 4 foreach swift swiftui
我有一个概述数据的结构,然后是一个具有结构数组的类。
struct Example: Codable, Identifiable {
var id: UUID
var title: String
var description: String?
var tags: [String]
}
class Examples: ObservableObject {
@Published var examples = [Example]()
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个用按钮显示数据的 ForEach:
ForEach(examples.examples) { example in
VStack {
Button("Complete") {
example.completed = true
}
Text(example.title)
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时,它给出错误“无法分配给属性:‘example’是‘let’常量。” 我尝试使用 @Binding var(来自这篇文章)将示例传递到一个单独的视图中,并使用索引修改数据(来自这篇文章),但是两者都给我一个错误,指出 Xcode 无法生成诊断报告并提交反馈。我怎样才能修改数据?
抱歉,如果这是一个不好的问题,我对 SwiftUI 还很陌生
这是因为 ForEach 返回您要操作的原始文件的只读副本example,并且您无法修改它。即使可以,它也不会是相同的结构(结构是值类型)。
您需要访问原始项目:
var body: some View {
ForEach(examples.examples.indices) { index in
VStack {
Button("Complete") {
examples.examples[index].completed = true
}
Text(examples.examples[index].title)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |