Код в commonMain (RegistrationViewModel)
Код в commonMain (RegistrationViewModel)
Код: Выделить всё
class RegistrationViewModel : CoroutineViewModel(), KoinComponent {
fun signUp(request: SignUpRequest) {
println("signUp method called with request: $request")
}
}
Код: Выделить всё
@Composable
fun RegistrationScreen(
onSignInClicked: () -> Unit,
onRegisterButtonClicked: () -> Unit,
navigateToMainScreen: () -> Unit
) {
val viewModel = remember { RegistrationViewModel() }
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
val loginValue = remember { mutableStateOf("") }
val emailValue = remember { mutableStateOf("") }
val passwordValue = remember { mutableStateOf("") }
FPButton(text = "Sign In", onClick = {
val signUpRequest = SignUpRequest(
name = loginValue.value,
emailAddress = emailValue.value,
password = passwordValue.value
)
println("Button clicked, calling signUp()")
viewModel.signUp(signUpRequest)
})
}
}
Когда я нажимаю кнопку «Войти», я вижу журнал «Кнопка нажата, вызывается SignUp()», но log из метода SignUp() («метод SignUp, вызываемый с запросом: $request») никогда не появляется. Это указывает на то, что метод не выполняется.
Что я пробовал:
Замена Remember { RegistrationViewModel() } на koinViewModel():< /p>
Код: Выделить всё
val viewModel: RegistrationViewModel = koinViewModel()
Вопросы:
Почему метод SignUp() не вызывается из ViewModel?
Может ли это быть связано со способом создания ViewModel в commonMain в проекте KMP?
Что-то не так с использованием Remember { RegistrationViewModel() } в KMP? контекст с Koin?
Подробнее здесь: https://stackoverflow.com/questions/791 ... ose-screen
Мобильная версия