使用 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
。
假设我们有一个简单的模型 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
。