swiftui - @EnvironmentObject 在模态表上使用时消失
问题描述
#SwiftUI 中似乎存在一个错误,@EnvironmentObject
如果用户拉下模式表以将其关闭,但取消手势使其保持打开状态,则该错误将不再可用。
实际错误:
SwiftUI:0:致命错误:找不到类型的 ObservableObject。A View.environmentObject(_:) for 可能作为该视图的祖先而丢失。
它不会一直发生,但发现它并不难重现。有谁知道修复?
解决方案
只需将 a 添加.environmentObject(env)
到提供的工作表即可解决您的问题。
更详细地说:
@EnvrironmentObject var currentEnvironment: SomeEnvironment
@State var isSheetPresented: Bool = false
var body: some View {
VStack {
// ...
}
.sheet(isPresented: $isSheetPresented) {
OtherView()
.environmentObject(currentEnvironment)
}
}
要重现此问题,您可以使用拖动手势将工作表拖动到一半以将其关闭,然后松开。(以一种不会关闭的方式......)
关于这种情况,我曾经读到它在某种程度上是一个错误。但我也读到这是有意的。对我来说,这似乎是一个错误,因为它发生的条件对我来说感觉不对。
推荐阅读
- python - 如何从另一个 python 程序运行 pytest Suite
- html - 将 R 文件编译成 HTML:data.frame(x,y) 中的错误:找不到 p
- mysql - 如何为每个父母收集最多记录
- javascript - 用 array.map() 中的渲染数据反应 js 问题
- r - R - 按字符迭代地选择和重命名列
- html - 为什么此 html 页面的完整内容未显示
- python - Python timeit.timeit - 排序的片段版本比使用 lambda 运行得更快,为什么?
- go - 使用 JWT 的 GraphQL Golang 身份验证
- javascript - Next.js:react-color - 警告:道具`style`不匹配
- angular - 如何确保用户输入图像(FORM ANGULAR)