I'm using: Jetpack Compose, ViewModel, and Hilt
Coroutine-based UserRepository for network calls
Here’s a simplified version of my setup:
Problem
The register button включено только в том случае, если форма заполнена.
запускает Coroutine для вызова viewmodel.register (...)
Но ничего не происходит, даже когда все поля заполнены и кнопка включена. Печать. < /p>
Код: Выделить всё
viewModel.register()
Нет тоста. Навигации не происходит.
Код: Выделить всё
Button(
onClick = {
scope.launch {
if (selectedRole == null) return@launch
if (password.value != confirmPassword.value) return@launch
viewModel.register(name.value.trim(), email.value.trim(), password.value)
}
},
enabled = buttonEnabled.value
) {
Text("Register")
}
< /code>
viewmodel call (функция регистра) < /p>
fun register(name: String, email: String, password: String) {
viewModelScope.launch {
_registerState.value = RegisterState.Loading
userRepository.register(
name, email, password, role = _selectedRole.value!!,
onSuccess = { _registerState.value = RegisterState.Success },
onFailure = { _registerState.value = RegisterState.Error(it.toString()) }
)
}
}
Код: Выделить всё
viewModel.register()
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-and-mvvm