Я пытаюсь создать модель, которая разделяет значение с содержащимися в нем объектами. В приведенном ниже примере у меня есть Model
объект, который содержит Struct
, b. Я хотел бы, чтобы у них обоих был доступ к Bool
, на который ссылаются переменные a и aa. Для этого я обернул Bool
в Box
структуру.
struct Box<Value> {
var value:Value
}
struct Model {
var a: Box<Bool>
var b:B
struct B {
var aa:Box<Bool>
}
}
struct TestView : View {
@State var model:Model
var body: some View {
VStack {
Text(model.a.value.description)
Text(model.b.aa.value.description)
Button(action: {
self.model.a.value.toggle()
}) {
Text("Button")
}
}
}
}
Однако, когда я запускаю код так:
let box = Box<Bool>(value: true)
let contentView = TestView(model: Model(a: box, b: Model.B(aa: box)))
Значение в model.b.aa не обновляется, как я ожидал. Есть ли другой способ, которым я должен делать это?