【发布时间】:2021-10-15 04:42:59
【问题描述】:
我正在制作应用程序的身份验证部分(登录、注册、忘记密码页面)。因为我有一个函数可以处理我为所有不同事务(登录、注销、注册用户等)调用的错误,如果它捕获到该错误,那么它将自定义消息设置为我的视图模型(环境对象)中的变量然后由屏幕上的视图观察到,并相应地将其绘制到屏幕上。
问题是,如果我在登录页面中遇到错误并说导航到忘记密码,那么该错误仍会保存在该 viewmodel 变量中,并且由于从忘记密码页面也观察到它,因此即使它显示在此页面上也是如此与它无关。 (这发生在所有屏幕之间,而不仅仅是这两个屏幕之间)。我想到的解决方法是在每次导航到新页面时重置变量,但是我不知道如何快速执行此操作。使用 swiftUI
我尝试使用 init 块并在那里重置变量,但是 init 在我的 environmentObject 初始化之前运行,因此我无法在那里设置成员变量。
【问题讨论】:
标签: swiftui swiftui-navigationlink swiftui-environment