在View.body外部读取EnvironmentObject <T>

时间:2019-06-07 14:52:04

标签: swift swiftui combine

我构造了一个绑定到自定义视图的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)
            }
        }
    }

我有一个viewModel可以在其中进行提取,因为我不想不必将服务注入此ListData类。这是因为我不希望将其保留在视图模型中。

但是当我尝试更新VM中的ListData.Items时,出现此错误:     在View.body外部读取EnvironmentObject:文件

只允许您在此新视图类的主体内部更新此变量吗?在那种情况下,您是否想在BindableObject中做所有网络工作?

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

0 个答案:

没有答案