Я пытаюсь найти способ вставить несколько массивов представлений в VStack в SwiftUI с помощью оператора collect().
struct ChatsTab: View {
var subscriptions = Set<AnyCancellable>()
var body: some View {
VStack {
["A", "B", "C", "D", "E"].publisher.collect(2).sink(receiveCompletion: { _ in
// Do nothing on completion
}) { (stringArray) in
HStack {
Text(stringArray[0])
Text(stringArray[1])
}
}
.store(in: &subscriptions)
}
}
}
Но я получаю следующее сообщение об ошибке:
Cannot convert value of type '()' to closure result type '_'
Я хочу сделать это с collect только для того, чтобы добавить свои текстовые представления в пару. Я знаю, что у меня есть другие варианты, но я хочу сделать это только с collect.
.collect().assign(to: \ContentView.stringArrays, on: self). Также, глядя на мой пример, это не так ясно, как могло бы быть. Следует помнить, что все этоForEachпредставление, включая модификаторonAppear, является одним представлением. Произвольный код может быть вonAppear, потому что его аргумент является закрытием. 23.01.2020