I'm trying to populate an array of structs from textfield entries but when i add an entry it replaces all other entries with the last one.
import SwiftUI
struct Drug: Hashable, Codable, Identifiable {
var id = UUID()
var name: String
var amount: String
var bag: String
var isRead: Bool = false
}
extension Drug {
static let samples = [
Drug(name: "", amount: "", bag: ""),
]
}
class BooksViewModel: ObservableObject {
@Published var drugs: [Drug] = Drug.samples
@Published var favs : [Drug] = []
}
struct BooksListView: View {
@StateObject var viewModel = BooksViewModel()
@State var newdrug : Drug = Drug(name: "", amount: "", bag: "")
var body: some View {
VStack{
List {
TextField ("Droga", text: $newdrug.name)
TextField ("Cantidad", text: $newdrug.amount)
TextField ("Volumen", text: $newdrug.bag)
}
List (viewModel.favs) { drug in
Text ("\(drug.name) \(drug.amount) in \(drug.bag)")
}
Button ("Add") {
viewModel.favs.insert(newdrug, at: 0)
print(viewModel.favs)
}
}
}
struct BooksListView_Previews: PreviewProvider {
static var previews: some View {
BooksListView()
}
}
}