如何在BehaviourSubject中设置默认值 [英] How to set default value in BehaviourSubject
问题描述
可能是一个菜鸟问题.如何为BehaviourSubject设置默认值.
Probably a noob question. How do I set a default value to a BehaviourSubject.
我有一个具有2个不同值的枚举
I have an enum with 2 different values
enum class WidgetState {
HIDDEN,
VISIBLE
}
还有一个发出状态的行为主体
And a behaviour subject which emits the states
val widgetStateEmitter: BehaviorSubject<WidgetState> = BehaviorSubject.create()
写入视图逻辑时,我的发射器开始发射.但是默认情况下它是隐藏的.如何将默认值WidgetState.HIDDEN设置为发射器widgetStateEmitter
?
My emitter starts emitting when the view logic is written. However it's HIDDEN by default. How do I set the default value as WidgetState.HIDDEN to my emitter widgetStateEmitter
?
推荐答案
There's a static BehaviorSubject.createDefault(T defaultValue)
factory method that allows to set the initial value.
defaultValue
参数的Javadoc说:
The Javadoc for the defaultValue
parameter says:
defaultValue
-将首先发射到任何Observer
的项目 只要BehaviorSubject
尚未观察到来自 其来源Observable
defaultValue
- the item that will be emitted first to anyObserver
as long as theBehaviorSubject
has not yet observed any items from its sourceObservable
因此,您只需要按如下方式创建BehaviorSubject
:
So you just have to create your BehaviorSubject
as follows:
val widgetStateEmitter: BehaviorSubject<WidgetState> =
BehaviorSubject.createDefault(HIDDEN)
这篇关于如何在BehaviourSubject中设置默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!