【问题标题】:get EnvironmentObject property within method在方法中获取 EnvironmentObject 属性
【发布时间】:2020-12-18 00:27:35
【问题描述】:

我需要通过 View-Extension 中的方法访问 EnvironmentObject,因此我无法添加 @EnvironmentObject 属性。

我试着这样做

extension View {
    func myFunc() {
        let something = EnvironmentObject<MyType>()
    }
}

但这不起作用 - 是否有另一种/更好的方法可以从方法中获取它?

【问题讨论】:

  • 这种方式绝对是不可能的——正好与 EnvironmentObject 的概念相反。您能否提供更多背景信息,以便我们尝试寻找不同的方式?
  • 我不明白 为什么 我不能在 View 扩展中声明 \@EnvironmentObject 属性——我知道你通常不能在扩展中声明属性,因为你可以'不在扩展中分配存储,但 \@EnvironmentObject 真的在后台分配存储吗?

标签: swiftui environmentobject


【解决方案1】:

您可以将对象作为参数传递:

extension View {
    func myFunc(myType: MyType) -> some View {
        // do something with `myType`
    }
}

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 2020-09-24
    • 2014-10-27
    • 1970-01-01
    • 2018-07-13
    • 2019-02-01
    • 2018-07-02
    • 2016-07-04
    • 2012-06-23
    相关资源
    最近更新 更多