В следующем коде SwiftUI я заметил неожиданное поведение.
Интересно, это ошибка, нормально ли это или мне не хватает чего-то очевидного.
List {
ForEach(self.myList, id: \.self.name) {
item in
HStack {
Spacer()
Button(action: {
print("Button One tapped!")
....
}) {
item.name.map(Text.init)
.font(.largeTitle)
.foregroundColor(.secondary)
}
Spacer()
Button(action: {
print("Button Two tapped!")
....
}) {
Image(systemName: "pencil.circle")
.font(.title)
.foregroundColor(.secondary)
.padding(.leading, 17)
}
}
}
.onDelete(perform: deleteFunc)
}
Вот что происходит при нажатии одной из двух кнопок подряд. Я вижу эти два сообщения:
Button One tapped!
Button Two tapped!
Я ожидаю увидеть только одно сообщение, в зависимости от нажатой кнопки.
Если порядок сообщений менялся в зависимости от нажатой кнопки; Я мог бы использовать одно или два логических значения, чтобы добиться желаемого конечного результата. Но два сообщения всегда появляются в одном и том же порядке.
У кого-нибудь был такой же опыт? Или кто нибудь видит ошибку?