Composable Function

key

[key] is a utility composable that is used to \"group\" or \"key\" a block of execution inside of a composition.

LocallyUniqueKeys

@Composable
fun LocallyUniqueKeys() {
    for (user in users) {
        key(user.id) { UserPreview(user = user) }
    }
    for (user in users.filter { isAdmin }) {
        key(user.id) { Friend(friend = user) }
    }
}

MoreCorrectUniqueKeys

@Composable
fun MoreCorrectUniqueKeys() {
    for ((child, parent) in relationships) {
        key(parent.id to child.id) {
            User(user = child)
            User(user = parent)
        }
    }
}

NotAlwaysUniqueKeys

@Composable
fun NotAlwaysUniqueKeys() {
    for ((child, parent) in relationships) {
        key(parent.id) {
            User(user = child)
            User(user = parent)
        }
    }
}

TwoInputsKeySample

@Composable
fun TwoInputsKeySample() {
    for (element in elements) {
        val selected by key(element.id, parentId) { remember { mutableStateOf(false) } }
        ListItem(item = element, selected = selected)
    }
}