Mikolaj
11/13/2023, 2:59 PMMikolaj
11/13/2023, 3:02 PMdata class State(
val text: String,
val onClick: () -> Unit
)
My view model:
class ViewModelX : ViewModel() {
private val _stateFlow: MutableStateFlow<State> = MutableStateFlow(State(text = "Hello, world1", onClick = ::updateStateReference))
val stateFlow: StateFlow<State> = _stateFlow
private fun updateStateReference() = viewModelScope.launch {
_stateFlow.emit(stateFlow.value.copy())
}
}
My view:
// ... in MainActivity.kt
setContent {
val state by viewModelX.stateFlow.collectAsState()
Screen(state)
}
// ...
@Composable
fun Screen(state: State) {
MyButton(text = state.text, onClick = state.onClick)
}
@Composable
fun MyButton(text: String, onClick: () -> Unit) {
Button(onClick) {
Text(text = text)
}
}
Mikolaj
11/13/2023, 3:03 PMMikolaj
11/13/2023, 3:32 PM