private val _email = MutableStateFlow("")
val email: StateFlow = _email.asStateFlow()
fun updateEmail(email: String) {
_email.value = email
}
< /code>
И внутри пользовательского интерфейса я использую: < /p>
val email by viewModel.email.collectAsStateWithLifecycle()
OutlinedTextField(
value = "",
onValueChange = { newEmail ->
viewModel.updateEmail(newEmail)
},
label = {
Text("Email")
}
)
< /code>
Но теперь я обнаружил, что могу использовать непосредственно внутри моего пользовательского интерфейса: < /p>
val email = rememberTextFieldState()
OutlinedTextField(
state = email,
label = {
Text("Email")
}
)
< /code>
Без необходимости использования ViewModel. Нет onvalueChange
, нет необходимости собирать какое -либо состояние, не нужно явно размещать курсор в конце текста, если это необходимо. Этот подход правильный? Лучше использовать unmomeTextFieldState over mutablestateflow ?
На данный момент я использую этот подход в моем просмотре: < /p> [code]private val _email = MutableStateFlow("") val email: StateFlow = _email.asStateFlow()
fun updateEmail(email: String) { _email.value = email } < /code> И внутри пользовательского интерфейса я использую: < /p> val email by viewModel.email.collectAsStateWithLifecycle()
OutlinedTextField( value = "", onValueChange = { newEmail -> viewModel.updateEmail(newEmail) }, label = { Text("Email") } ) < /code> Но теперь я обнаружил, что могу использовать непосредственно внутри моего пользовательского интерфейса: < /p> val email = rememberTextFieldState() OutlinedTextField( state = email, label = { Text("Email") } ) < /code> Без необходимости использования ViewModel. Нет onvalueChange [/code], нет необходимости собирать какое -либо состояние, не нужно явно размещать курсор в конце текста, если это необходимо. Этот подход правильный? Лучше использовать unmomeTextFieldState over mutablestateflow ?