Вы перебираете список разделов, поэтому GrocerySection
должен быть идентифицируемым, например
struct GrocerySection: Identifiable {
var id = UUID() // << this
// var id: String { sectionName } // << or even this
var sectionName:String
var items:[Grocery] = [Grocery(id:1, name: "Milk", isFavorite: true, price: 1.99)]
}
, тогда вы можете написать
List(data.sections) { (section) -> Text in
Text("Hello")
}
или использовать keypath, если каждое имя раздела уникально, как
List(data.sections, id: \.sectionName) { (section) -> Text in
Text("Hello")
}