【发布时间】:2019-12-19 09:40:16
【问题描述】:
我有一个 SwiftUI 视图,我在其中声明了这样的条件
@State var condition = UserDefaults.standard.bool(forKey: "JustKey")
当我第一次将此视图推送到导航堆栈时,条件变量正在获取正确的值。然后,当我弹出此视图时,我更改了 UserDefaults 中的值,但是当我再次按下此屏幕时,条件变量会记住它第一次获得的旧值。 如何找到解决方法,因为我想在每次进入我声明它的自定义视图时重新初始化我的条件变量?
【问题讨论】:
-
作为一种解决方法,您可以使用视图的
onAppear方法重新评估状态。我必须强调,这确实是一种解决方法,并且可能有更好的方法。 -
我们不知道,至少我不知道,SwiftUI 如何管理其特殊的
State(或ObservedObject)对象,我们可以'关于变量的反初始化过程不多说了。但就Apple 指导我们如何控制数据源的数据流 而言,可以推断您拥有数据的单一访问点。话虽这么说,你可以试试the approach discussed here -
@EvZ 我也来到了那个解决方案,但不幸的是,当我在 onAppear 中设置值时,应用程序会根据该值崩溃 bc 我在 List 中添加一个部分,xcode 抱怨说只警告一次:UITableView 被告知在视图层次结构中布局其可见单元格和其他内容...
标签: ios swift xcode swiftui combine