[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)
}
}
}
@Composable
fun TwoInputsKeySample() {
for (element in elements) {
val selected by key(element.id, parentId) { remember { mutableStateOf(false) } }
ListItem(item = element, selected = selected)
}
}