Open winddpan opened 10 months ago
Fixed! https://github.com/winddpan/ObservationBP/commit/a1a8fb1bdf6b7a08b4a4463c8869d2b2f3e30e46
onAppear mutating doesn't work correctly Text(person.name) .onAppear { person.name = "onAppear changed!" } limited by withObservationTracking's behavior, need takes some thinking. withObservationTracking { let _ = person.name person.name = "onAppear changed!" } onChange: { print("changed") // not called! }
onAppear mutating doesn't work correctly
Text(person.name) .onAppear { person.name = "onAppear changed!" }
limited by withObservationTracking's behavior, need takes some thinking.
withObservationTracking
withObservationTracking { let _ = person.name person.name = "onAppear changed!" } onChange: { print("changed") // not called! }
我刚好遇到了一个类似的问题
这里不生效,是因为 onAppear 的 closure 是 escaping 的,将会被异步调用,不会被监听到。
我的问题是类似的,用到了 ForEach 这个类型,在 ForEach 的 closure 里面的 subview 访问 model 的属性 propertyA,subview 同样无法得到 propertyA 变更的刷新
Fixed! https://github.com/winddpan/ObservationBP/commit/a1a8fb1bdf6b7a08b4a4463c8869d2b2f3e30e46