如何防止隐藏的SwiftUI视图从@Published变量重绘?

时间:2020-06-10 20:56:56

标签: swift swiftui-list swiftui-navigationlink swiftui

我正在构建一个聊天应用程序:我有InboxViewMessagesView,简而言之,他们俩都在听一个名为@Published的{​​{1}}变量。当用户在chats中发送消息时,收件箱的排名会发生变化,并且由于MessagesView正在监听聊天InboxView变量的更新,因此无论视图是否隐藏,它都会重绘其视图!我假设这是一些SwiftUI急切的绘图优化。很好。

现在的问题是@Published中有InboxViewList,这意味着在重绘期间NavigationLink会以某种方式重置其状态并导航用户! ?甚至更糟的是,再次将用户推回同一聊天室。您可以看到example setup here,但是缺少的是数据源。

我不能依赖NavigationLinkonAppear,因为调用它们就像用户导航回该视图一样,因此onDisappear认为它正在显示!

0 个答案:

没有答案