struct ParentView: View {
@ObservedObject var selectedFruit:Fruit
@State var showingSheet = false
var body: some View {
VStack {
HStack(spacing:0.6) {
ForEach(self.viewModel.fruits, id: \.id) { record in
Text(record).onTapGesture {
self.selectedFruit = Fruit() //Cannot assign to property: 'self' is immutable
self.showingSheet.toggle()
}
}
}
}.sheet(isPresented: $showingSheet,onDismiss: {
print("reload?")
}) {
DetailView(fruit: self.selectedFruit)
}
}
}
struct DetailView: View {
@ObservedObject var fruit: Fruit
var body: some View {
Text(fruit.text)
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试为可观察值赋值时selectedFruit,ParentView出现以下编译错误:
无法分配给属性:“self”是不可变的
但如果我替换@ObservedObject为@State,它就有效。我怎样才能让它工作@ObservedObject?我担心,如果我使用 @State,我对该对象所做的更新DetailView将不会触发 上的更新ParentView。
有人可以帮我解决这个问题吗?
| 归档时间: |
|
| 查看次数: |
3671 次 |
| 最近记录: |