I'm learning Jetpack Compose and I was trying to make a View Model for my @Composable.
In documentation (https://developer.android.com/codelabs/jetpack-compose-state#3) for observing state changes in composable they use observeAsState
but in my implementation, the method cannot be found. I get instead Unresolved reference: observeAsState
ViewModel
class MainActivityViewModel : ViewModel() {
val list: LiveData<MutableList<String>> = MutableLiveData(mutableListOf("Ana", "are", "mere"))
fun addString(item: String) {
val list: MutableList<String> = list.value!!
list.add(item)
}
}
Composable
I am using Compose 1.0.0-beta01
observeAsState
is part of the runtime-livedata
library.
Add the dependency to your module's build.gradle
file. Replace $compose_version
with the version of compose which you use, e.g. 1.0.0-beta01
:
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
You can find the available versions here in Google's Maven repository.
Not exactly answering your question, but as a suggestion you could migrate to Flow instead of using live data.
ViewModel ->
val yourList: MutableStateFlow<List<String>> = MutableStateFlow(listOf("String1","String2","String3"))
Composable ->
val yourList by yourViewModel.yourList.collectAsState()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With