Post

Replies

Boosts

Views

Activity

Function Issue: Closure containing a declaration cannot be used with result builder 'ViewBuilder'
I am having trouble with running my save button function. I am not sure why the function won't work. I thought it was because i have too many arguments. I am just not sure what to do. struct addALandmarkForm: View {   @Environment(\.presentationMode) var presentatoinMode   @EnvironmentObject var listViewModel: ListViewModel   @State var newLocationName: String = ""   @State var texts: String = "Enter a Description"   @State public var newPropertyType1 = false   @State public var propertyPrice: String = ""   @State var email: String = ""   @State var ownerName: String = ""       @State var alerTitle: String = ""   @State var showAlert: Bool = false       var body: some View {           NavigationView {       Form {         TextField("Location Name", text: $newLocationName)         Toggle("Property is Private ",             isOn: $newPropertyType1)         if newPropertyType1{           TextField("Asking/Starting Price", text: $propertyPrice)             .keyboardType(.numberPad)         }         TextEditor(text: $texts )                   Section(header: Text("Owner")){           TextField("Enter an Email", text: $email)           TextField("Owner's First Name", text: $ownerName)         }         Section(header: Text("Submit")){                       Button (action: saveButtonPressed, label:{             Label("Submit New Location", systemImage: "plus.square")           })         }       }       .navigationBarTitle("Add a New Location")             } // this is where my issue is. Thi is the error that i get. //Closure containing a declaration cannot be used with result builder 'ViewBuilder'     func saveButtonPressed() {         listViewModel.addItem(title: newLocationName, descrip: texts, price: propertyPrice, mail: email, owner: ownerName)         presentatoinMode.wrappedValue.dismiss()       }     }   } struct addALandmarkForm_Previews: PreviewProvider {   static var previews: some View {     NavigationView{       addALandmarkForm()     }     .environmentObject(ListViewModel())   } } import SwiftUI class ListViewModel: ObservableObject {       @Published var items: [ItemModel] = []       init(){     getItems()   }   func getItems() {     let newItems = [       ItemModel(newLocationName: "PFT", text: "Engineering building for LSU students. A great place to study and do business", newPropertyType1: true, propertyPrice: "1200", email: "test@email", ownerName: "Rob"),       ItemModel(newLocationName: "PFT", text: "Engineering building for LSU students. A great place to study and do business", newPropertyType1: true, propertyPrice: "1200", email: "test@email", ownerName: "Bob"),       ItemModel(newLocationName: "PFT", text: "Engineering building for LSU students. A great place to study and do business", newPropertyType1: true, propertyPrice: "1200", email: "test@email", ownerName: "Taylor")     ]     items.append(contentsOf: newItems)   }   func addItem(title: String, descrip: String, price: String, mail: String, owner: String){     let newItem = ItemModel(newLocationName: title, text: descrip, newPropertyType1: false, propertyPrice: "1200", email: mail, ownerName: owner)       items.append(newItem)   } }
2
0
1.4k
Dec ’21