#swiftui #swiftui-list
Вопрос:
У меня есть представление, которое содержит представление списка и кнопку. При нажатии кнопки в массив будет добавлен новый элемент. В представлении списка отображаются все элементы этого массива. Но если я нажму кнопку, представление списка не отобразит изменения в массиве.
Вот мой код:
import SwiftUI
var myArray = ["Harald", "Jürgen", "Günter"]
struct ContentView: View {
var body: some View {
HStack{
List(myArray, id: .self) {
Name in
Text(Name)
}
Button(action: {
myArray.append("Harald")
print(myArray)
}, label: {
Text("Button")
})
}
}
}
Мой вопрос теперь в том, как я могу это сделать, чтобы в моем представлении списка также отображались новые элементы / изменения.
Спасибо, Бутош
Ответ №1:
myArray должен быть в состоянии@, и он должен находиться внутри представления содержимого. Я рекомендую вам прочитать и посмотреть несколько руководств по SwiftUI.
struct ContentView: View {
@State var myArray = ["Harald", "Jürgen", "Günter"]
var body: some View {
HStack{
List(myArray, id: .self) {
Name in
Text(Name)
}
Button(action: {
myArray.append("Harald")
print(myArray)
}, label: {
Text("Button")
})
}
}
}