Я пытаюсь найти способ вставить несколько массивов представлений в 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