我有一个发布者,我的 View 的 onReceive
被订阅了。我希望 onReceive
中的发布者在第一次订阅时触发,而不是在 onAppear
中重复逻辑。
有没有办法将发布者转换为 CurrentValueSubject
?这是我正在尝试做的事情:
var myPublisher: CurrentValueSubject<Void, Never> {
Just(()) // Error: Cannot convert return expression of type 'Just<()>' to return type 'CurrentValueSubject<Void, Never>'
}
这是可行的还是更好的方法?
最佳答案
您无法将发布商转换为 CurrentValueSubject
随意,因为它是一种非常特殊的发布者类型。问问自己是否真的需要 myPublisher
的类型成为CurrentValueSubject<Void, Never>
或者如果 AnyPublisher<Void, Never>
会做。
var myPublisher: AnyPublisher <Void, Never> {
Just(()).eraseToAnyPublisher()
}
或者,如果您只想创建一个 CurrentValueSubject
的实例有 ()
作为它的初始值,你可以使用这个:
var myPublisher: CurrentValueSubject<Void, Never> {
CurrentValueSubject<Void, Never>(())
}
关于swift - 如何将发布者转换为 CurrentValueSubject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62372478/