Jetpack Compose 为什么 Material 组件默认返回状态类型?

Tun*_*han 6 android-jetpack-compose android-jetpack-compose-material3

材料 3TextFieldDefaults文件包含以下方法。问题是为什么这个方法和类似方法的返回类型是State<Color>?我已经在我的代码中尝试过它,因为Color没有状态的返回类型也可以工作。当焦点或其他参数发生变化时,会发生重组,并且新颜色不会出现问题。因此,我很好奇为什么它是返回类型State<Color>而不是Color它的目的是什么,如果可以的话,你能用代码示例解释一下吗?(就像如果你使用颜色而不是状态,你就不能这样做。)

@Composable
internal fun placeholderColor(
    enabled: Boolean,
    isError: Boolean,
    interactionSource: InteractionSource
): State<Color> {
    val focused by interactionSource.collectIsFocusedAsState()

    val targetValue = when {
        !enabled -> disabledPlaceholderColor
        isError -> errorPlaceholderColor
        focused -> focusedPlaceholderColor
        else -> unfocusedPlaceholderColor
    }
    return rememberUpdatedState(targetValue)
}
Run Code Online (Sandbox Code Playgroud)