【发布时间】:2021-07-21 10:14:43
【问题描述】:
我有 2 个模型:Bag 和 Food。一个袋子包含 1 个食物。食物有名字。
我正在尝试将 Food.name 属性与父视图 (BagView) 中显示的 TextField 和子视图中显示的另一个 TextField (食物视图)。
- 当我编辑父级的文本字段时,更改会显示在机器人视图中。
- 当我编辑子文本字段时,更改不显示在父视图中。为什么?
这是我的示例代码:
class Bag: ObservableObject {
@Published var food: Food
init(food: Food) {
self.food = food
}
}
class Food: ObservableObject {
@Published var name: String
init(name: String) {
self.name = name
}
}
struct BagView: View {
@ObservedObject var bag: Bag
var body: some View {
VStack {
TextField("Placeholder 1", text: $bag.food.name)
FoodView(food: bag.food)
}
}
}
struct FoodView: View {
@ObservedObject var food: Food
var body: some View {
TextField("Placeholder 2", text: $food.name)
}
}
【问题讨论】:
标签: swift swiftui observableobject