Используя тот же код < /em> в watchos, который дает ошибку:
Set a .modelContext in view's environment to use Query
, что обычно означает, что пользователь забыл определить контекст модели. Как мы видим из приведенного ниже кода, контекст модели именно там, где он должен быть. < /P>
Что я делаю неправильно?import SwiftUI
import SwiftData
struct ContentView: View {
@Environment(\.modelContext) var modelContext
@Query(filter: #Predicate {
drinkModel in
drinkModel.drink == "beer"
}) var beer: [DrinkModel]
@Query(filter: #Predicate {
drinkModel in
drinkModel.drink == "wine"
}) var wine: [DrinkModel]
@Query(filter: #Predicate {
drinkModel in
drinkModel.drink == "shot"
}) var shot: [DrinkModel]
@Query(filter: #Predicate {
drinkModel in
drinkModel.drink == "cocktail"
}) var cocktail: [DrinkModel]
var body: some View {
VStack {
HStack {
VStack {
Button("
//calories come from one can Bud Light
self.recordDrink(drink:"beer", calories: 110)
}
).buttonStyle(LiquorButtonStyle(height: 60, width: 60))
Text("\(beer.count)").foregroundStyle(.white)
}
VStack {
//calories comes from 1 glass of Barefoot wine
Button("
self.recordDrink(drink: "wine", calories: 120)
}
).buttonStyle(LiquorButtonStyle(height: 60, width: 60))
Text("\(wine.count)").foregroundStyle(.white)
}
}
HStack {
VStack {
Button("
//calories come from a single shot of fireball
self.recordDrink(drink: "shot", calories: 100)
}
).buttonStyle(LiquorButtonStyle(height: 60, width: 60))
Text("\(shot.count)").foregroundStyle(.white)
}
VStack {
Button("
//Calories in a single gin and tonic
self.recordDrink(drink: "cocktail", calories: 175)
}
).buttonStyle(LiquorButtonStyle(height: 60, width: 60))
Text("\(cocktail.count)").foregroundStyle(.white)
}
}
}
.padding()
}
private func recordDrink(drink: String, calories: Int) {
let dm = DrinkModel(drink: drink, date: Date(), calories: calories)
modelContext.insert(dm)
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... not-see-it
Мобильная версия