类型为"某些视图"的属性不能覆盖类型为"某些视图"的属性



我想在我的子类中覆盖类型为"some View"的计算属性以返回不同的视图,但我收到这个奇怪的错误:

open class A {
open var oneView: some View { ...
}
public class B : A {
public override var oneView: some View { ...
}

类型为"some View"的属性不能覆盖类型为"某些视图"的属性 "一些观点">

如何正确完成?

您可以将每个包装在AnyView中。它的工作原理是这样的:

open class A {
open var oneView: AnyView {
AnyView(Text("A"))
}
}
public class B: A {
public override var oneView: AnyView {
AnyView(Text("B"))
}
}

例如,如果您想在视图主体内有一个VStack,您只需要确保将其包装在AnyView中。

最新更新