如何解决如何重新渲染SwiftUI视图
我有一个主页,该页面可以转到没有NavigationLinks的其他视图,而是具有isActive状态并弹出到根目录的解雇,这样,我被告知,我们的应用程序使用的内存较少,因为它本质上是循环的。因此,该视图永远不会再导航到该视图,而是始终存在,因此,永远不会重新评估@State vars。例如,在我们的主页中,我有以下内容:
@State var showSwingAgainSheet = appDelegate.swing?.isRecorded ?? false
其中引用Core Data变量,以后用于显示工作表:
.modifier(SaveOrDeleteRecordingSheetView(isPresented: $showSwingAgainSheet))
当Core Data变量设置为true时,除非我强制关闭应用程序,否则不会弹出工作表
我曾考虑使用@ Environment,@ ObservableObject,但无法弄清楚。解决此问题的最佳方法是什么?
解决方法
this可能有帮助吗?更改.id()修饰符将重新加载视图,从而导致@State变量恢复为默认状态。由于默认状态是三元运算符,因此在重新加载视图时可能会重新评估它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。