2

我构建了一个绑定到我的自定义视图的 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 中完成所有网络工作?

尚未找到有关此最佳实践的任何文档。

4

0 回答 0