Чтение EnvironmentObject <T>за пределами View.body - PullRequest
1 голос
/ 07 июня 2019

Я создал объект 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.Это потому, что я не хочу делать выборку, я хочу сохранить это в моей модели представления.

Но когда я пытаюсь обновить ListData.Items в моей виртуальной машине, я получаю эту ошибку: Чтение EnvironmentObject извнеView.body: file

Вам разрешено обновлять эту переменную только внутри тела этого нового класса представления?В этом случае предполагается, что вы выполняете все свои сетевые операции внутри BindableObject?

Вы еще не нашли никакой документации по наилучшей практике этого.

...