如何在BehaviourSubject中设置默认值 [英] How to set default value in BehaviourSubject

查看:185
本文介绍了如何在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 any Observer as long as the BehaviorSubject has not yet observed any items from its source Observable

因此,您只需要按如下方式创建BehaviorSubject:

So you just have to create your BehaviorSubject as follows:

val widgetStateEmitter: BehaviorSubject<WidgetState> = 
        BehaviorSubject.createDefault(HIDDEN)

这篇关于如何在BehaviourSubject中设置默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆