Я получаю ошибки, когда пытаюсь изменить свою переменную, в которой хранится значение цвета - PullRequest
0 голосов
/ 28 марта 2020

В настоящее время у меня есть список, который принимает json данные из удаленно сохраненного файла в Интернете. Я создал переменную «hwcolor», в которой храню переменную цвета. Я планирую изменить значение, если будет прочитано определенное значение из файла json.

var hwcolor: Color = Color.white

Вот моя цветовая переменная.

List(fetcher.hws) { hw in
                        if hw.subject == "H2 Physics" {
                            self.hwcolor = Color.blue
                        }

                        else {
                            self.hwcolor = Color.white
                        }

Данные файла json правильно загружаются в список и все на месте. Однако я не могу изменить значение цвета в соответствии со считанным значением. Я получаю сообщение об ошибке «Невозможно присвоить свойству:« self »является неизменяемым» из Xcode при каждой попытке запустить код. Как я должен изменить свой код, чтобы позволить переменной цвета мутировать?

         HStack {
                        VStack (alignment: .leading) {

                            Text(hw.title)
                                .foregroundColor(self.hwcolor)
                            Text(hw.info)
                                .font(.system(size: 14))
                                .foregroundColor(Color.gray)
                            Text(hw.duedate)
                                .font(.system(size: 11))
                                .foregroundColor(Color.gray)
                        }
                            Spacer()
                            Text(hw.subject)
                                .padding()

                    }
                    }

                }

Вот код, который иллюстрирует то, что я планирую иметь в каждой ячейке списка.

1 Ответ

1 голос
/ 28 марта 2020

Просто приведите его в состояние, как показано ниже

@State var hwcolor: Color = Color.white
  • Представление SwiftUI является структурным и не изменяемым, для изменения самого представления существует @State оболочка свойства для объектов, связанных с моделью предпочтительнее использовать шаблон ObservableObject.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...