我正在构建一个聊天应用程序:我有InboxView
和MessagesView
,简而言之,他们俩都在听一个名为@Published
的{{1}}变量。当用户在chats
中发送消息时,收件箱的排名会发生变化,并且由于MessagesView
正在监听聊天InboxView
变量的更新,因此无论视图是否隐藏,它都会重绘其视图!我假设这是一些SwiftUI急切的绘图优化。很好。
现在的问题是@Published
中有InboxView
个List
,这意味着在重绘期间NavigationLink
会以某种方式重置其状态并导航用户! ?甚至更糟的是,再次将用户推回同一聊天室。您可以看到example setup here,但是缺少的是数据源。
我不能依赖NavigationLink
或onAppear
,因为调用它们就像用户导航回该视图一样,因此onDisappear
认为它正在显示!