Я только начал изучать Swift (и даже новее в Swift UI!), Поэтому извиняюсь, если это ошибка новичка.
Я пытаюсь написать очень простую программу, в которой пользователь выбирает чье-то имя изсборщик, а затем видит текст ниже, который отображает приветствие для этого человека.
Но связанная переменная selectedPerson не обновляется при выборе нового значения с помощью средства выбора. Это означает, что вместо отображения приветствия, такого как «Привет, Гарри», «Привет, никто» отображается даже тогда, когда я выбрал человека.
struct ContentView: View {
var people = ["Harry", "Hermione", "Ron"]
@State var chosenPerson: String? = nil
var body: some View {
NavigationView {
Form {
Section {
Picker("Choose your favourite", selection: $chosenPerson) {
ForEach ((0..<people.count), id: \.self) { person in
Text(self.people[person])
}
}
}
Section{
Text("Hello \(chosenPerson ?? "no-one")")
}
}
}
}
}
(я включил одну или две частиоригинальное форматирование на тот случай, если что-то изменится)
Я посмотрел на этот вопрос , казалось, что это может быть похожая проблема, но добавление .tag(person)
к Text(self.people[person])
не решил мою проблему.
Как я могу получить приветствие, чтобы показать имя выбранного человека?