Я заметил странное поведение событий OnAppear для представлений списка. Я думаю, что закрытие OnAppear будет запускаться всякий раз, когда на экране появляется представление, но, похоже, оно запускается сразу после загрузки списка.
Например, следующий код:
@State var rows: [String] = Array(repeating: "Item", count: 20)
var body: some View {
List(0..<rows.count, id: \.self) { index in
Text(verbatim: self.rows[index])
.onAppear {
print("BOOOOM")
}
.frame(height:400)
}
}
... Я ожидаю, что команда печати будет запускаться пару раз при загрузке, а затем продолжит печать, когда я прокручиваю вниз. Вместо этого он печатает 20 раз за раз, затем снова, когда я начинаю прокручивать вниз.
Есть мысли?