在两个不同片段上从 SharedViewmodel 观察数据无法正常工作

问题描述 投票:0回答:1

我正在过滤底部表中的数据,该底部表可以在不同活动的两个不同片段中打开,当我过滤片段A上的数据时,它们保存在视图模型上,但是当我进入片段B并观察数据时,它们为空。如果我返回片段 A,数据已保存并过滤,如何解决此问题? 我正在使用 Dagger Hilt,所以我认为我不应该使用 BaseViewmodelFactory。 这是视图模型:

@HiltViewModel
class CarViewModel @Inject constructor() : ViewModel() {
    private val _carFilters = MutableLiveData<CarFilters>().apply {
        value = CarFilters()
    }
    val carFilters: LiveData<CarFilters> get() = _carFilters

    private val _dates = MutableLiveData<DateFilters?>()
    val date: MutableLiveData<DateFilters?> get() = _dates

    fun updateDates(dates: DateFilters) {
        _dates.value = dates
    }

    fun updateFilters(updatedFilters: CarFilters) {
        _carFilters.value = updatedFilters
    }
}

我对此也很小心,这就是我在每个片段和底页上调用视图模型的方式:

    private val viewModel: CarViewModel by activityViewModels()
    
   // my observable :
    
    viewModel.carFilters.observe(viewLifecycleOwner){...}
android kotlin android-livedata android-lifecycle
1个回答
0
投票

请检查 viewModel 实例,我认为您有 2 个 viewModel 实例

© www.soinside.com 2019 - 2024. All rights reserved.