У меня следующее мнение (ненужные части удалены):
Код: Выделить всё
struct Chart : View {
var xValues: [String]
var yValues: [Double]
@State private var showXValues: Bool = false
var body = some View {
...
if showXValues {
...
} else {
...
}
...
}
}
затем мне захотелось добавить способ изменения этого значения извне, поэтому я добавил функцию:
Код: Выделить всё
func showXValues(show: Bool) -> Chart {
self.showXValues = show
return self
}
поэтому я создаю представление диаграммы снаружи следующим образом:
Код: Выделить всё
Chart(xValues: ["a", "b", "c"], yValues: [1, 2, 3])
.showXValues(true)
но это работает так, как если бы значение все еще было ложным. Что я делаю не так? Я думал, что обновление переменной @State должно обновить представление. В целом я новичок в Swift, тем более в SwiftUI. Может быть, мне не хватает какой-то специальной техники, которую следует здесь использовать?
Подробнее здесь:
https://stackoverflow.com/questions/593 ... in-swiftui