我构建了一个绑定到我的自定义视图的 BindableObject。
我想更新此类中的项目数组
// in my vm:
class ViewModel {
func fetched() {
listView.listData.items = viewModel.listItems
}
}
final class ListData: BindableObject {
var didChange = PassthroughSubject<ListData, Never>()
var items: [ListItem] = [] {
didSet {
didChange.send(self)
}
}
}
我有一个视图模型,我可以在其中进行获取,因为我不想将服务注入到这个 ListData 类中。这是因为我不想让它做任何获取,我想将它保留在我的视图模型中。
但是当我尝试更新我的 VM 中的 ListData.Items 时,我收到了这个错误:Reading EnvironmentObject outside View.body: file
您是否只允许在这个新视图类的主体内更新这个变量?在这种情况下,您是否应该在 BindableObject 中完成所有网络工作?
尚未找到有关此最佳实践的任何文档。