Динамические элементы массива Swiftui кажутся дублированнымиIOS

Программируем под IOS
Ответить
Anonymous
 Динамические элементы массива Swiftui кажутся дублированными

Сообщение Anonymous »

Вопрос новичка: Если я создаю структуру представления, содержащую кнопку, содержащую @state var ititle, и два метода, один из которых является стандартным действием, а другой изменяет ITITLE, я ожидаю, что ITITLE будет обновлен независимо от того, выполняется ли действие кнопки
или есть другой метод, потому что Ititle - это @State var.import SwiftUI

struct TitleButton: View {
@State var iTitle:String
var body: some View {
Button(action: theAction) {
Text(iTitle)
}.buttonStyle(.borderedProminent)
}
func theAction() { iTitle="Hello"+iTitle }
func goodbye() { iTitle="Goodbye"; print("Goodbye") }
}

struct ContentView: View {
@State var iButtons: [TitleButton] = [TitleButton(iTitle:"Woo!")]
var body: some View {
VStack {
Button("Goodbye", action: {
if iButtons.count > 0 { iButtons[0].goodbye() }
})
iButtons[0]
}
}
}
< /code>
Кроме того, потому что ibuttons является @state var, я ожидаю, что ibuttons обновляются всякий раз, когда Ititle меняется по любой причине. И я могу предположить «Привет», нажав кнопку, делая ее «hellowoo!» Вместо этого, когда титул снова нажимается, Ititle установлен на «Hellohellowoo!». Но для меня ибуттоны [0], на которые ссылаются в кнопке «Прощай», одинаковый ибуттоны [0] в VSTACK. Что я ошибаюсь?
Заранее!

Подробнее здесь: https://stackoverflow.com/questions/796 ... duplicated
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»