- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用我的 @EnvironmentObject
让我的 TeamData 可以被不同的人使用,但效果不佳。当我通过列表中的导航链接转到另一个 View 时,这很好。当我点击同一 View 的按钮时,它崩溃了..
我想我说错了什么。有人可以帮助解决这个问题吗?这是否意味着我需要添加 @EnvironmentObject
首先在 NavigationView 以便我可以使用它?谢谢
演示:https://youtu.be/-iRadrHd94c
import SwiftUI
struct GameRecordListView: View {
@EnvironmentObject var teamResult : TeamResult
@State var hint : String = ""
@State var successRegistration : Bool = false
@State var sheetPresented: Bool = false
var body: some View {
VStack{
List(0 ..< 12){ item in
NavigationLink(destination: GameDetailRecordView()){ <-this works well
Text("444")
}
}
VStack{
Spacer()
HStack{
Spacer()
NavigationLink(destination: GameDetailRecordView()) <-this doesn't works well and crashed
{
Image(systemName: "pencil.circle")
.resizable()
.frame(width: 35, height: 35)
.padding(12)
.background(Color.blue)
.foregroundColor(Color.white)
.clipShape(Circle())
}
}.padding(15)
}
}.onAppear(perform: {
print("teamResult:\(self.teamResult.groupID):\(self.teamResult.groupName)")
})
}
}
import SwiftUI
import SwiftyJSON
struct TeamDetail: View {
@EnvironmentObject var teamResult : TeamResult
// @ObservedObject var teamResult: TeamResult
var roles = ["GameRecord", "Schedule", "Money", "Member"]
@State var show = false
@State private var selectedIndex = 0
var body: some View {
ZStack{
VStack {
Picker(selection: $selectedIndex, label: Text("")) {
ForEach(0..<roles.count) { (index) in
Text(self.roles[index])
}
}
.pickerStyle(SegmentedPickerStyle())
HStack{
containedView()
}
Spacer()
}
}.navigationBarTitle(teamResult.groupName)
.onAppear(perform:{
})
}
//select different view by selectedIndex
func containedView() -> AnyView {
switch selectedIndex {
case 0:
return AnyView(
GameRecordListView().environmentObject(teamResult) <-create environmentObject here
)
case 1:
return AnyView(Text("")
.padding(30))
case 2:
return AnyView(
BookkeepingView().environmentObject(teamResult)
)
default:
return AnyView(
TeamMemberListView().environmentObject(teamResult))
}
}
}
import SwiftUI
struct GameDetailRecordView: View {
@EnvironmentObject var teamResult : TeamResult
var body: some View {
Text("ID:\(teamResult.groupID)Name:\(teamResult.groupName)")
}
}
Fatal error: No ObservableObject of type TeamResult found.
A View.environmentObject(_:) for TeamResult may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.4.3/Core/EnvironmentObject.swift, line 55
2020-01-20 01:14:58.466655+0800 Fitness(SwiftUI)[49035:4851345] Fatal error: No ObservableObject of type TeamResult found.
A View.environmentObject(_:) for TeamResult may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.4.3/Core/EnvironmentObject.swift, line 55
最佳答案
尝试在 NavigationLink 的 View 上添加 environmentObject
NavigationLink(destination: GameDetailRecordView().environmentObject(teamResult))
关于swiftui - @EnvironmentObject 通过 navigationLink 不能很好地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59812640/
我正试图从这里众所周知的新手深渊中爬出来。 我开始掌握 @EnvironmentObject 的使用,直到我注意到文档中的 .environmentObject() View 运算符。 这是我的代码:
在我的 ContentView ,我有一个简单的按钮 sheet我的礼物SettingsView .好像和我的@EnvironmentObject var iconSettings: IconName
#SwiftUI 中似乎存在一个错误,其中 @EnvironmentObject如果用户拉下模态表以关闭它,但取消手势使其保持打开状态,则将不再可用。 实际错误: SwiftUI:0: Fatal e
我有一个使用 Storyboard 和 UIKit 构建的 iOS 项目。现在我想使用 SwiftUI 开发新屏幕。我向现有的 Storyboard 添加了一个托管 View Controller ,
SwiftUI 中的@Environment 和@EnvironmentObject 有什么区别? 从我从文档中找到的内容来看,@Environment 似乎是用于像 ColorScheme 这样的全
我想要一个变量作为 EnvironmentObject 并且我也希望它被持久化,这样每次我重新启动我的应用程序时它都是一样的。 为此,我已经创建了以下 propertyWrapper: import
我想从 Delegate 类中为 EnvironmentObject 设置值。 struct AppleMapView: UIViewRepresentable { @EnvironmentObj
我最近发现需要编写一个 Class 的 Mock,因为它会导致 SwiftUI preview 无法正常工作。不幸的是,我得到了错误: Property type 'T' does not match
我的应用程序中有三个 View 。第一个显示游戏列表。第二个是每场比赛的球员名单。第三个有每个玩家的得分列表。所以结构看起来像这样: struct GameView: View { @enviro
我有一个在工作线程中更新的@EnvironmentObject,并且几个 SwiftUI View 订阅了对已发布值的更改。 这一切都很好。 但我正在努力让 UIView 订阅@Environment
我有这种奇怪的行为,我已经尝试修复了好几个小时: 当 EnvironmentObject UserSettings 更改时,我的一个 View 未更新。尽管如果我完全重新启动应用程序,新值将按原样使用
我一直在阅读有关 SwiftUI 中的属性包装器的信息,我发现它们做得很好,但我真正不明白的一件事是 之间的区别。 @EnvironmentObject 和 @ObservedObject . 从我到
我试图在我的 URLSession 中更新 environmentObject。 我的登录 View 。 struct LoginView: View { @EnvironmentObject
是否可以在新的 SwiftUI 2.0 项目的应用程序文件中使用 EnvironmentObject? 我正在使用以下代码,但出现错误: Fatal error: No ObservableObjec
我成功地将 environmentObject appSettings 传递到我的 View 中。我可以使用它来修改我的字体和 View 中的选择器。但是,如果我尝试在 View init() 中访问
我遇到以下 SwiftUI 错误 @EnvironmentObject与自定义 Shape 一起使用时, : Fatal error: No ObservableObject of type MyOb
我用我的 @EnvironmentObject让我的 TeamData 可以被不同的人使用,但效果不佳。当我通过列表中的导航链接转到另一个 View 时,这很好。当我点击同一 View 的按钮时,它崩
我有一个 LoginView,如果用户未登录,则显示 RegisterView,如果用户已登录,则显示 ContentView: struct LoginView: View { @Envir
我正在尝试使用 @EnvironmentObject 来控制我的应用程序的某些方面。我遇到的问题是我的一个 Controller 无法访问环境对象。我收到 fatal error “未找到环境类型的
我在将类信息从一个结构实例传递到另一个结构实例时遇到了麻烦,所以我一直在尝试解决问题。 这是可行的,因为我正在通过 View // phone_testingApp.swift import Swif
我是一名优秀的程序员,十分优秀!