protocol ErrorableViewProtocol: View {
var error: Error? { get set }
}
class ObservableError: ObservableObject {
@Published var error: Error?
}
struct ErrorableView<T: ErrorableViewProtocol>: View {
var errorable: T
var body: some View {
if let error = errorable.error {
ErrorView(error: error)
} else {
errorable
}
}
}
我在哪里偏离了正道?
1条答案
按热度按时间p5cysglq1#
ObservableError
符合ObservableObject
。你不能说Optional<ObservableError>
(又名ObservableError?
)也是这样。当你使用@StateObject
时,你应该总是在同一个结构中示例化类。但是,当您要从另一个结构传入对象时,请使用
@ObservedObject
。