【问题标题】:View is not displayed when a variable is changed SwiftUISwiftUI更改变量时不显示视图
【发布时间】:2022-01-24 02:07:18
【问题描述】:

我正在尝试在变量更改时更改我的视图,但我得到的只是一个空视图。

  var body: some View {
  
            if syncViewModel._order.status == 1369 {
                orderConfirmed
            }
            if syncViewModel._order.status == 5570 {
            orderOnTheWay
            }
    }

我想根据状态 ID 更改视图。状态 id 已成功更改为“5570”(我检查过),但视图将为空。 orderConfirmed 和 orderOnTheWay 仅包含一些 Text 。可能是什么问题?

【问题讨论】:

  • _order 是结构体还是 @Published`?
  • @aheze 在我的 ViewModel 中并且已发布,是的。
  • 始终提供后果视图,您的情况是您的状态不是 5570 或 1369;并且使用 switch case 更容易调试

标签: swift swiftui


【解决方案1】:

我在这里可能不正确,但看起来您只是在访问已发布对象的值,而不是将您的 UI 绑定到已发布对象本身。所以(如果我是对的)UI 实际上并没有订阅对象,因此当它发生变化时不会被告知。

不幸的是,我的 SwiftUi 体验仍然很新,所以我无法提供有关如何修复它的建议,但我猜你需要找到一种方法让 UI 来观察已发布对象的更改。

对互联网的快速搜索出现了https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-observedobject-to-manage-state-from-external-objects,这看起来可能与您尝试做的非常相似。

【讨论】:

    猜你喜欢
    • 2020-11-26
    • 2020-04-10
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2016-08-08
    • 2020-05-02
    相关资源
    最近更新 更多