如何在SwiftUI中向收藏夹列表添加内容



我正在尝试创建一个收藏夹列表,在其中我可以添加不同的项目,但它不起作用。我做了一个简单的代码来告诉你发生了什么。

// BookData gets data from Json
struct BookData: Codable {
var titolo: String
var descrizione: String
}
class FavoriteItems: ObservableObject {
@Published var favItems: [String] = []
}
struct ContentView: View {
@ObservedObject var bookData = BookDataLoader()
@ObservedObject var favoriteItems = FavoriteItems()
var body: some View {
NavigationView {
List {
NavigationLink(destination: FavoriteView()) {
Text("Go to favorites")
}
ForEach(0 ..< bookData.booksData.count) { num in
HStack {
Text("(self.bookData.booksData[num].titolo)")
Button(action: {
self.favoriteItems.favItems.append(self.bookData.booksData[num].titolo)
}) {
Image(systemName: "heart")
}
}
}
}
}
}
}
struct FavoriteView: View {
@ObservedObject var favoriteItems = FavoriteItems()
var body: some View {
List {
ForEach (0 ..< favoriteItems.favItems.count) { num in
Text("(self.favoriteItems.favItems[num])")
}
}
}
}

当我启动应用程序时,我可以转到收藏夹视图,但在添加项目后,我不能。我的目标是将一个项目添加到收藏夹,并能够在关闭应用后保存它

ContentView中的视图模型favoriteItems需要传递到FavoriteView中,因为添加新数据时需要引用favoriteItem来重新加载FavoriteView。

更改为

NavigationView(destination: FavoriteView(favoriteItems: favoriteItems))@ObservedObject var favoriteItems: FavoriteItems

一切都会好起来的。

谢谢,X_X

最新更新