Aus*_*nyi 3 struct immutability ios swift swiftui
我正在尝试在 SwiftUI 中创建一个操作来向我的数据集Form添加附加内容Child。当我尝试附加时newChild出现错误:
无法对不可变值使用变异成员:“self”是不可变的
struct Child : Identifiable {
var id = UUID()
var birthday: Date
var name: String
}
struct ContentView: View {
var children : [Child] = []
var body: some View {
VStack {
Button(action: {
let newChild = Child(birthday: Date(), name: "Carl")
children.append(newChild)
}) {
Text("Add Child")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
children据我所知,我的数组是可变的,那么为什么我会收到此错误?
问题是,struct如果没有标记正在更改这些属性的函数,则 a 无法更改其自己的属性mutating。您可以\xe2\x80\x99t 标记body为mutating,但您可以创建children一个@State var. @State变量是可变的,但只能在您的 view\xe2\x80\x99sbody属性中可变。
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |