Я определяю mainArray как глобальную переменную, и она есть в моей функции инициализации:
init(post: Post, post2: [PostById]) {
self.post = post
self.post2 = post2
if let posty = post {
mainArray = self.post2.filter { i in i.album_id == posty.id }
print("mainArray \(mainArray)")
}
}
, которую я использую в списке следующим образом:
var body: some View {
VStack {
Text("Title: ").bold()
+ Text("\(post.title)")
ImageView(withURL: "http://localhost:8000/\(post.path.replacingOccurrences(of: " ", with: "%20"))")
Text("Description: ").bold()
+ Text("\(post.description)")
List(mainArray) { post in
Text("\(post.name ?? "title")")
}
}
проблема заключается в том, что я должен использовать функцию init, как это в моем ContentView: NavigationLink(destination: Album.init(post: post, post2: self.model2.postsById))
, которая вызывает мою функцию init в моем ContentView, которую я не хочу вместо того, чтобы делать Album(post: post, post2: self.model2.postsById)
.
У меня вопрос, как я могу поместить
if let posty = post {
mainArray = self.post2.filter { i in i.album_id == posty.id }
print("mainArray \(mainArray)")
}
вне моей функции инициализации, а также не объявлять mainArray как глобальную переменную и по-прежнему использовать его в моем списке?