<h2 id="currentvalueof-local">currentValueOf</h2>

<div class='sourceset sourceset-android'>Android</div>

```kotlin
public fun <T : Any?> CompositionLocalConsumerSubspaceModifierNode.currentValueOf(
    local: CompositionLocal<T>
): T
```

Returns the current value of `local` at the position in the composition hierarchy of this
modifier's attached layout node.

Unlike [CompositionLocal.current](/jetpack-compose/androidx.compose.runtime/runtime/classes/CompositionLocal), reads via this function are not automatically tracked by
Compose. Modifiers are not able to recompose in the same way that a Composable can, and therefore
can't receive updates arbitrarily for a CompositionLocal.

Because CompositionLocals may change arbitrarily, it is strongly recommended to ensure that the
composition local is observed instead of being read once. If you call [currentValueOf](/jetpack-compose/androidx.xr.compose/compose/functions/currentValueOf) inside of
a modifier callback like [SubspaceLayoutModifierNode.measure](/jetpack-compose/androidx.xr.compose/compose/interfaces/SubspaceLayoutModifierNode), then Compose will track the
CompositionLocal read. This happens automatically, because these Compose UI phases take place in
a snapshot observer that tracks which states are read. If the value of the CompositionLocal
changes, and it was read inside of the measure or draw phase, then that phase will automatically
be invalidated.

For all other reads of a CompositionLocal, this function will **not** notify you when the value
of the local changes.

This function will fail with an `IllegalStateException` if you attempt to read a CompositionLocal
before the node is [attached](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifier.Node) or after the node is
[detached](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifier.Node).

#### Parameters

| | |
| --- | --- |
| local | The CompositionLocal to get the current value of |

#### Returns

| | |
| --- | --- |
|  | The value provided by the nearest CompositionLocalProvider component that invokes, directly or indirectly, the composable function that this modifier is attached to. If `local` was never provided, its default value will be returned instead. |