Проблема при переключении компонента () из массива в другой [SwiftUI] - PullRequest
0 голосов
/ 28 марта 2020

У меня есть в массиве, который перечисляет компонент (), я сделал; список предопределен следующим образом:

var collectionData = [
    Collectioncard(value: "1"),
    Collectioncard(value: "2"),
    Collectioncard(value: "reverse"),
    Collectioncard(value: "4",),
    Collectioncard(value: "strange"),
    Collectioncard(value: "6"),
    Collectioncard(value: "1")
]

И я хочу передать указанный элемент c, который я нажимаю, в другой массив (пустой массив):

var choosenData = [Choosencard]()

Вот что я объявлено в верхней части моей структуры (и у меня есть класс типа ObservableObject и @Published var в другом файле swiftui):

@State var collection = collectionData
@State var choosen = choosenData
@ObservedObject var collectionstore = CollectionStore()
@ObservedObject var choosenstore = ChoosenStore()

Итак, у меня есть первый l oop для «коллекции»:

ForEach(collection.indices, id: \.self) { index in
        Component(myValue: self.collection[index].value)

        .onTapGesture {
                self.choosenstore.choosencard.append(
                    Choosendeck(value: self.collection[index].value)
                )
        }
}

И у меня есть второй l oop для "выбранного":

ForEach(choosenstore.choosencard) { choosen in
        Component(myValue: choosen.value)
}

И это прекрасно работает: карта, которую я нажимаю из первого списка, появляется в второй список, НО я хочу иметь возможность добавить TapGesture к этому второму ForEach, чтобы иметь возможность обратить вспять Компонент: вернуть его в первый массив.

Поэтому я попытался изменить второй l oop как это:

ForEach(choosen.indices, id: \.self) { index in
        Component(myValue: self.choosen[index].value)
}

И это не работает, и я понятия не имею, почему. Это та же конструкция, что и в первом l oop, поэтому я должен быть в порядке, и если я попытаюсь предварительно заполнить пустой массив var choosenData = Choosencard некоторым содержимым, появится предопределенное содержимое.

Я не знаете, что не так ...

Есть идеи?

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...