理有意为之还是技术缺陷?SwiftUI 多层导航中的 onChange 异常
2024年11月27日 08:12
SwiftUI 提供的 onChange 修饰器,使开发者能够在视图中监听特定值的变化,并在值发生改变时执行相应的操作。直觉上,只要某个视图位于当前可见的视图树分支中( 活动中 ),在观察的值发生变化时,对应的闭包就应该被触发。但在某些特定的导航场景下,onChange 修饰器似乎会“选择性失聪”,明明观察的值发生了变化,却诡异地保持沉默。这究竟是苹果精心设计的特性,还是一个隐藏已久的代码缺陷?本文将揭示这一现象并对开发者给予必要的提醒。