У меня проблема в SwiftUI. Когда я пытаюсь запустить свой симулятор, произошла ошибка. Симулятор запускается хорошо, но через несколько секунд появляется сообщение об ошибке:
Fatal error: No ObservableObject of type UserStore found. A View.environmentObject(_:) for
UserStore may be missing as an ancestor of this view.: file SwiftUI, line 0 2020-05-05
13:08:36.521073+0200 PLAN.YOUR.TRIP[55476:1340155] Fatal error: No ObservableObject of type
UserStore found. A View.environmentObject(_:) for UserStore may be missing as an ancestor
of this view.: file SwiftUI, line 0
(lldb)
Это происходит из файла, в котором я использую другой файл с именем UserStore для подключения моего проекта к Firebase, вот где ошибка произошло:
if user.showLogin { // <--- RIGHT HERE
ZStack {
LoginView(showLogin: $showLogin)
VStack {
HStack {
Spacer()
Image(systemName: "xmark.circle")
.resizable()
.frame(width: 36, height: 36)
.foregroundColor(Color(.systemGray6))
.background(Color.gray.opacity(0.5))
.clipShape(Circle())
.padding()
.onTapGesture {
self.user.showLogin = false
}
}
}
}
Ошибка говорит о том, что существует проблема «Не найден ObservableObject типа UserStore», но я создал файл с именем «UserStore», в который я поместил это:
import SwiftUI
import Combine
class UserStore: ObservableObject {
@Published var isLogged = false
@Published var showLogin = false
@Published var showReg = false
}
И чтобы связать это с моим другим файлом, в котором я использую @EnvironmentObject, вот так:
struct Home: View {
@State var showProfile = false
@EnvironmentObject var user: UserStore
@State var showLogin = false
@State var showReg = false
Я не могу понять ошибку, потому что этот точно такой же код работал вчера, но я ' Я пытался удалить расширение под названием «Hero», которое не использовалось в моем проекте, и мне было предложено обновить код до Swift 5, это то, что я сделал, но после этого появилось много других ошибок. Я решил воссоздать проект с той же самой конструкцией и файлами, переустановить какао-стручки с тем же кодом (без «Hero pod»), и идентификатор пакета тот же, так что это не проблема между Firebase и моим проектом .. .
Я знаю, что этот контент здесь повторяется, но я не нашел ничего подходящего для меня на всех других форумах.
Извините за мой английский sh, который не самый лучший ...
Помогите, пожалуйста. Спасибо