J'apprends Jetpack Compose et j'essayais de créer un modèle de vue pour mon @composable.
dans la documentation ( https://developer.android.com/codelabs/jetpack-compose-state#3 ) Pour observer les modifications d'état dans composables qu'ils utilisent observeasState code > Mais dans mon implémentation, la méthode ne peut être trouvée. Je reçois à la place
Référence non résolue: observeSState
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) } }
J'utilise Compose 1.0.0-Beta01
2 Réponses :
ObserveasState
fait partie de la bibliothèque runtime-livedata
.
Ajoutez la dépendance au fichier build.gradle
de votre module. Remplacez $ compose_version
par la version de Compose que vous utilisez, par ex. 1.0.0-beta01
:
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
Vous pouvez trouver les versions disponibles ici dans le référentiel maven de Google .
Pourtant, la même documentation n'est pas mise à jour pour les dépendances requises
ne répond pas exactement à votre question, mais comme suggestion, vous pouvez migrer vers le flux au lieu d'utiliser des données en direct.
ViewModel ->
val yourList by yourViewModel.yourList.collectAsState()
Composable -> p>
val yourList: MutableStateFlow<List<String>> = MutableStateFlow(listOf("String1","String2","String3"))
La même .. la méthode n'est pas trouvée
Juste pour info, si quelqu'un lit ceci et ne suit pas: la question d'origine de 2021 fait référence à l'État Codelab v2021. En 2022, un nouvel état Codelab a été créé et téléchargé, donc l'URL ci-dessus ne vous emmène plus dans un endroit où vous pouvez voir le code et cette API, mais une page dans le nouveau CodeLab. Acclamations!