使用 distinctUntilChanged() 转换 LiveData returns null

Transformed LiveData with distinctUntilChanged() returns null

假设我们有一个简单的模型 class:

data class Model(val value: Int)

我们将这个模型包装成 LiveData:

val model1 = MutableLiveData<Model>()

现在我们可以创建第二个使用 model1:

的变量
val model2 = model1.distinctUntilChanged()

然后将值设置为 model1 并打印两个模型的值

model1.value = Model(0)
print(model1.value.toString()) // Model(value=0)
print(model2.value.toString()) // null

问题是 model2.value 为空。当然,如果我删除 distinctUntilChanged() 转换,它工作正常。

您必须 observe LiveData 才能从另一个 MutableLiveData 实例填充其 value