我应该使用State还是ObservableObject?

时间:2020-08-06 10:42:22

标签: swift data-binding swiftui combine

我对SwiftUI还是很陌生,他试图把我的头放在应该如何处理绑定,状态和数据流上。

总结我要做什么:

我有一个视图,用户可以点击多个“卡”来选择它们。这些卡中的每个卡都是其自己的局部视图,需要对其进行更新以反映它们是否被选中。当用户选择一张卡时,该元素将被推入一个数组中,以用于跟踪选定的卡。一旦用户完成选择并点按一个按钮,我就希望获取所选对象的数组并将其用于模型中以对其执行一些其他操作。因此,基本上,我需要这个“选定的数组”在我的主视图,局部视图和模型中可用并同步。

据我所知,我有两个选择(忽略EnvironmentObjects)是谁拥有此数组的状态。一种是在主视图中将其声明为@State,将其传递给局部视图,然后在用户完成填充后将其传递给模型中的某些函数。第二种选择是让模型拥有它,并在我的主视图中将其用作@ObservedObject并将模型的实例传递到我的局部视图中。这两个选项似乎都可以正常工作并且表现相同。

问题就变成了:我应该使用哪个选项?将模型实例传递给嵌套视图是个好主意吗? SwiftUi和Combine我有一些基本概念吗?

谢谢!

0 个答案:

没有答案