```class UsersViewModel( private val savedStat...
# compose
m
Copy code
class UsersViewModel(
    private val savedStateHandle: SavedStateHandle,
    private val getUsers: () -> List<User>,
) : ViewModel() {

    data class State(
        val query: String,
        val users: List<User>,
    )

    private var currentQuery by savedStateHandle.saveable(CurrentQuery) { mutableStateOf("") }
    private val results by derivedStateOf {
        getUsers().filter { currentQuery in it }
    }
    val state by derivedStateOf {
        State(currentQuery, results)
    }

    fun queryUsers(query: String) {
        savedStateHandle[CurrentQuery] = query
    }
}
this doesn’t cause recomposition, why is that? because not all `derivedStateOf`s are read from
@Composable
function?