Aqui está meu composível
@Composable
fun CounterScreen(viewModel: MyViewModel = viewModel()) {
val uiState by viewModel.uiState.collectAsState()
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = "Counter: ${uiState.count}")
Spacer(modifier = Modifier.height(16.dp))
FloatingActionButton(
onClick = {
viewModel.increment()
},
) {
Icon(imageVector = Icons.Default.Add, contentDescription = "Increment")
}
}
}
Por que o estado é preservado com recomposição quando escrevi fun CounterScreen(viewModel: MyViewModel = viewModel())
, mas não com fun CounterScreen(viewModel: MyViewModel = MyViewModel())
. No entanto, ambos criam uma nova instância de MyViewModel. Alguém pode me explicar? Obrigado