Skip to main content

Associer des champs

ViewModel

Pour lier une classe avec des propriétés dans un formulaire, vous devez trouver un moyen d'associer les valeurs saisies dans chaque champ tout en observant les valeurs.

Plusieurs solutions s'offrent à vous, cependant voici une proposition

Une classe model

data class Article(var title: String = "", var content : String = "") {

}
Attention au data class

data class permet d'avoir des extensions de fonction utiles pour compose

Un View Model

class MonViewModel : ViewModel() {

var article = MutableStateFlow(Article())
}

Dans le formulaire

Cette proposition qui va suivre est la version native sans fonctions utilitaires :

...

// Champ titre
TextField(value = article.title, onValueChange = { monViewModel.article.value = articleViewModel.article.value.copy(title = it) } )

// Champ content
TextField(value = article.content, onValueChange = { monViewModel.article.value = articleViewModel.article.value.copy(content = it) } )

...