# ViewModelStoreNavEntryDecorator

Artifact: [androidx.lifecycle:lifecycle-viewmodel-navigation3](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/navigation3/ViewModelStoreNavEntryDecorator.kt+class:androidx.lifecycle.viewmodel.navigation3.ViewModelStoreNavEntryDecorator) Added in [2.10.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.10.0) Common/All
- Cmn

  ```
  class ViewModelStoreNavEntryDecorator<T : Any> : NavEntryDecorator<T>
  ```

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.navigation3.runtime.NavEntryDecorator](https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntryDecorator)\<T\> ||
|   | ↳ | [androidx.lifecycle.viewmodel.navigation3.ViewModelStoreNavEntryDecorator](https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/navigation3/ViewModelStoreNavEntryDecorator) |

*** ** * ** ***

Provides the content of a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` with a `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStoreOwner` and provides that `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStoreOwner` as a `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner` so that it is available within the content.

This requires the usage of `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/SaveableStateHolderNavEntryDecorator` to ensure that the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` scoped `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel`s can properly provide access to `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle`s.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntryDecorator#onPop()` | for more details on when this callback is invoked |

## Summary

| ### Public constructors |
|---|---|
| `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/navigation3/ViewModelStoreNavEntryDecorator#ViewModelStoreNavEntryDecorator(androidx.lifecycle.viewmodel.ViewModelStoreProvider)( viewModelStoreProvider: https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/ViewModelStoreProvider )` | Cmn |
| `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> [ViewModelStoreNavEntryDecorator](https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/navigation3/ViewModelStoreNavEntryDecorator#ViewModelStoreNavEntryDecorator(androidx.lifecycle.ViewModelStore,kotlin.Function0))( viewModelStore: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore, removeViewModelStoreOnPop: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` **This function is deprecated.** This parameter was a workaround for detecting configuration changes and was never intended for conditional popping. | Cmn |

## Public constructors

### ViewModelStoreNavEntryDecorator

Cmn

```
<T : Any> ViewModelStoreNavEntryDecorator(
    viewModelStoreProvider: ViewModelStoreProvider
)
```

### ViewModelStoreNavEntryDecorator

Cmn

```
<T : Any> [ViewModelStoreNavEntryDecorator](https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/navigation3/ViewModelStoreNavEntryDecorator#ViewModelStoreNavEntryDecorator(androidx.lifecycle.ViewModelStore,kotlin.Function0))(
    viewModelStore: ViewModelStore,
    removeViewModelStoreOnPop: () -> Boolean
)
```

> [!CAUTION]
> **This function is deprecated.**   
> This parameter was a workaround for detecting configuration changes and was never intended for conditional popping. Configuration changes are now handled internally. All decorator state must clear at the same time on pop. To keep decorator state around outside of when a back stack is passed to a NavDisplay, use the rememberDecoratedNavEntries API, use this instead:
>
> ```kotlin
> ViewModelStoreNavEntryDecorator(viewModelStore)
> ```

Constructs a `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/navigation3/ViewModelStoreNavEntryDecorator`.

| Parameters |
|---|---|
| `viewModelStore: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore` | The `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore` that provides to the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry`. |
| `removeViewModelStoreOnPop: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | This parameter is now ignored and the lambda is never invoked. |