I used to have these rows defined in the list view itself, but now that I've broken the rows off into its own view I'm getting this vague error. Missing argument for parameter #1 in call
It tells me to Insert '<#LocalizedStringKey#>, ' to fix this but I'm not sure why it's needed or what I should put in as the Localized String Key.
var body: some View {
NavigationView{
if #available(iOS 14.0, *) {
List{
ForEach(result) { (log: Expenses) in
Button(action: {
self.editExpense = log
print(log.id)
}) {
HStack() {
VStack(alignment: .leading, spacing: 8) {
Text(log.nameText).padding(.horizontal, -7)
Text(log.dateText).font(.caption).padding(.horizontal, -7)
}
Spacer()
VStack(alignment: .trailing, spacing: 8){
Text(log.amountText)
Text(log.expenseAccount?.capitalized ?? "").font(.caption)
}
}
}
}
.onDelete(perform: onDelete)
}.padding(.horizontal, -20).navigationTitle("Expense List")
But now I have created a row view and want to call it for each item in Expenses. For some reason I'm getting the error at the line below.
import SwiftUI
import CoreData
@available(iOS 14.0, *)
struct ExpenseList: View {
@State var editExpense: Expenses?
@State var addExpense = false
@Environment(\.managedObjectContext)
var context: NSManagedObjectContext
@FetchRequest(fetchRequest: Expenses.expensesList)
private var result: FetchedResults<Expenses>
init(predicate: NSPredicate?, sortDescriptor: NSSortDescriptor) {
let fetchRequest = NSFetchRequest<Expenses>(entityName: Expenses.entity().name ?? "Expenses")
fetchRequest.sortDescriptors = [sortDescriptor]
if let predicate = predicate {
fetchRequest.predicate = predicate
}
_result = FetchRequest(fetchRequest: fetchRequest)
}
var body: some View {
NavigationView{
List{
ForEach(result) { (log: Expenses) in
Button(action: { <----- Missing argument for parameter #1 in call
self.editExpense = log
})
ExpenseRow(name: log.nameText, date: log.dateText, amount: log.amountText, account: log.expenseAccount ?? "")
}
.onDelete(perform: onDelete)
}.navigationTitle("Expense List")
ExpenseRow view in case it's needed
import SwiftUI
@available(iOS 14.0, *)
struct ExpenseRow: View {
let name: String
let date: String
let amount: String
let account: String
var body: some View {
HStack() {
VStack(alignment: .leading, spacing: 8) {
Text(name).padding(.horizontal, -7)
Text(date).font(.caption).padding(.horizontal, -7)
}
Spacer()
VStack(alignment: .trailing, spacing: 8){
Text(amount)
Text(account.capitalized).font(.caption)
}
}
}
}