Итак, я получаю данные обратно так:
[Test.PostById(id: "9ffb2c83-45ed-4198-b6ab-9a259ef91b44", album_id: "9ffb2c83-45ed-4198-b6ab-9a259ef91b44", name: nil, path: "public/1584106997200-astronomy-space-abstract-galaxy.jpg"), Test.PostById(id: "7ac7ff5f-4b4b-458f-b9a6-491813dbe97d", album_id: "9ffb2c83-45ed-4198-b6ab-9a259ef91b44", name: Optional("California Wind "), path: "public/1584106997230-California_Wind.mp3"), Test.PostById(id: "d804c511-fdd6-453c-816d-fbe501b0ba8d", album_id: "9ffb2c83-45ed-4198-b6ab-9a259ef91b44", name: Optional("Cosmic Love "), path: "public/1584106997710-Cosmic_Love.mp3"), Test.PostById(id: "094e5b65-f0b2-4a5d-8c20-c6fa3d733325", album_id: "9ffb2c83-45ed-4198-b6ab-9a259ef91b44", name: Optional("Happy Sixth "), path: "public/1584106997890-Happy_Sixth.mp3"), Test.PostById(id: "f148fd8e-6896-492b-8e5a-c99072cad562", album_id: "9ffb2c83-45ed-4198-b6ab-9a259ef91b44", name: Optional("How it Began "), path: "public/1584106998000-How_it_Began.mp3")]
[Test.PostById(id: "fa3d34ed-325b-479e-8b8f-c59831f0790d", album_id: "fa3d34ed-325b-479e-8b8f-c59831f0790d", name: nil, path: "public/1584040654626-home-icon.jpg"), Test.PostById(id: "42a3c308-8d03-47a9-9723-d66013f6fcca", album_id: "fa3d34ed-325b-479e-8b8f-c59831f0790d", name: Optional("A Typical Ride Out "), path: "public/1584040654632-A_Typical_Ride_Out.mp3"), Test.PostById(id: "938f642d-db6f-4519-b575-1e1598f5fae7", album_id: "fa3d34ed-325b-479e-8b8f-c59831f0790d", name: Optional("Because For Everything There Is Someone "), path: "public/1584040654799-Because_For_Everything_There_Is_Someone.mp3"), Test.PostById(id: "6313b82f-672f-4cc7-9ccb-ae0e24e2fef8", album_id: "fa3d34ed-325b-479e-8b8f-c59831f0790d", name: Optional("California Wind "), path: "public/1584040655221-California_Wind.mp3")]
[Test.PostById(id: "f1567e48-eb24-4ccc-b24d-6c7c9c99e326", album_id: "f1567e48-eb24-4ccc-b24d-6c7c9c99e326", name: nil, path: "public/1584038265741-Profile-img-icon.png"), Test.PostById(id: "4e9d5c31-d48e-4d0a-8f26-ba67d1ac39c2", album_id: "f1567e48-eb24-4ccc-b24d-6c7c9c99e326", name: Optional("Prophet 7 "), path: "public/1584038265742-Prophet_7.mp3"), Test.PostById(id: "71b80407-2434-445e-8e0b-30e1a45293a7", album_id: "f1567e48-eb24-4ccc-b24d-6c7c9c99e326", name: Optional("Rubber Ducky "), path: "public/1584038265907-Rubber_Ducky.mp3"), Test.PostById(id: "0069ba6a-85c2-48d8-b5bd-d0e70c84bea2", album_id: "f1567e48-eb24-4ccc-b24d-6c7c9c99e326", name: Optional("Shameless Life Wisdom Sendoff "), path: "public/1584038265996-Shameless_Life_Wisdom_Sendoff.mp3")]
И я передаю их в моем ContentView:
struct ContentView: View {
@ObservedObject var model = PostListViewModel()
@ObservedObject var model2 = PostListViewByIdModel()
var body: some View {
NavigationView {
List(model.posts) { post in
VStack{
Text("Title: ").bold()
+ Text("\(post.title)")
NavigationLink(destination: Album(post: post, post2: self.model2.postsById)) {
ImageView(withURL: "http://localhost:8000/\(post.path.replacingOccurrences(of: " ", with: "%20"))")
}
Text("Description: ").bold()
+ Text("\(post.description)")
}
}
}
.onReceive(model.$posts) { posts in
self.model2.fetchPostsById(for: posts)
}
}
}
on line: Album(post: post, post2: self.model2.postsById)
где self.model2.postById
это все мои данные. Как вы можете видеть выше, я также передаю сообщение, которое можно идентифицировать, поэтому каждый элемент списка, который я нажимаю, имеет свою собственную идентификацию, которую я использую здесь:
struct Album: View {
var post:Post
var post2:[PostById]
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() { post in
Text("\(post.name)")
}
}
}
}
Что я пытаюсь сделать, это сделать убедитесь, что идентификатор album_id или первый идентификатор массива для post2 совпадает с идентификатором для post, поэтому данные, полученные в моем списке, совпадают с id и данными из post.