# NavBackStackEntry

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavBackStackEntry.kt+class:androidx.navigation.NavBackStackEntry) Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

*** ** * ** ***

Common/AllAndroid/JVMJavaScript
- Cmn

  ```
  class NavBackStackEntry : LifecycleOwner, ViewModelStoreOwner, HasDefaultViewModelProviderFactory, SavedStateRegistryOwner
  ```

*** ** * ** ***

Representation of an entry in the back stack of a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. The `https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle`, `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore`, and `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` provided via this object are valid for the lifetime of this destination on the back stack: when this destination is popped off the back stack, the lifecycle will be destroyed, state will no longer be saved, and ViewModels will be cleared.

## Summary

| ### Public functions |
|---|---|---|
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#equals(kotlin.Any)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#hashCode()()` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#toString()()` | Cmn |

| ### Public properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#arguments()` The arguments used for this entry. | Cmn |
| `open https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#defaultViewModelCreationExtras()` The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` to pass into `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)` when no overriding `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` are provided. | Cmn |
| `open https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#defaultViewModelProviderFactory()` The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to use when no custom `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` is provided to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#destination()` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#id()` | Cmn |
| `open https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#lifecycle()` {@inheritDoc} | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#savedStateHandle()` The `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` for this entry. | Cmn |
| `open https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#savedStateRegistry()` The `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` owned by this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryOwner`. | Cmn |
| `open https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#viewModelStore()` {@inheritDoc} | Cmn |

| ### Extension functions |
|---|---|---|
| `inline T` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry.https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#(androidx.navigation.NavBackStackEntry).toRoute()()` Returns route as an object of type `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute()` | Cmn |
| `T` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry.https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#(androidx.navigation.NavBackStackEntry).toRoute(kotlin.reflect.KClass)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<*>)` Returns route as an object of type `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute(kotlin.reflect.KClass)` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry.https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)( saveableStateHolder: https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Provides `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` as `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner`, `https://developer.android.com/reference/kotlin/androidx/lifecycle/compose/package-summary#LocalLifecycleOwner()` and `https://developer.android.com/reference/kotlin/androidx/savedstate/compose/package-summary#LocalSavedStateRegistryOwner()` to the `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)` and saves the `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)`'s saveable states with the given `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)`. | Cmn |

## Public functions

### equals

Cmn

```
open operator fun equals(other: Any?): Boolean
```

### hashCode

Cmn

```
open fun hashCode(): Int
```

### toString

Cmn

```
open fun toString(): String
```

## Public properties

### arguments

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

```
val arguments: SavedState?
```

The arguments used for this entry. Note that the arguments of a NavBackStackEntry are immutable and defined when you `navigate()` to the destination - changes you make to this SavedState will not be reflected in future calls to this property.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?` | The arguments used when this entry was created |

### defaultViewModelCreationExtras

Cmn

```
open val defaultViewModelCreationExtras: CreationExtras
```

The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` to pass into `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)` when no overriding `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` are provided.

### defaultViewModelProviderFactory

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

```
open val defaultViewModelProviderFactory: ViewModelProvider.Factory
```

The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to use when no custom `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` is provided to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`.

### destination

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

```
val destination: NavDestination
```

### id

Cmn

```
val id: String
```

### lifecycle

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

```
open val lifecycle: Lifecycle
```

{@inheritDoc}

If the `https://developer.android.com/reference/kotlin/androidx/navigation/NavHost` has not called `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController#setLifecycleOwner(androidx.lifecycle.LifecycleOwner)`, the Lifecycle will be capped at `https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle.State#CREATED`.

### savedStateHandle

Cmn Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.3.0)

```
val savedStateHandle: SavedStateHandle
```

The `https://developer.android.com/reference/kotlin/androidx/lifecycle/SavedStateHandle` for this entry.

### savedStateRegistry

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

```
open val savedStateRegistry: SavedStateRegistry
```

The `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistry` owned by this `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedStateRegistryOwner`.

### viewModelStore

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.2.0)

```
open val viewModelStore: ViewModelStore
```

{@inheritDoc}

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if called before the `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#lifecycle()` has moved to `https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle.State#CREATED` or before the `https://developer.android.com/reference/kotlin/androidx/navigation/NavHost` has called `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController#setViewModelStore(androidx.lifecycle.ViewModelStore)`. |

## Extension functions

### NavBackStackEntry.toRoute

Cmn Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavBackStackEntry.kt+function:toRoute)

```
inline fun <T : Any?> NavBackStackEntry.toRoute(): T
```

Returns route as an object of type `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute()`

Extrapolates arguments from `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#arguments()` and recreates object `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute()`

| Parameters |
|---|---|
| `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?>` | the entry's `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#route()` as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |

| Returns |
|---|---|
| `T` | A new instance of this entry's `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#route()` as an object of type `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute()` |

### NavBackStackEntry.toRoute

Cmn Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavBackStackEntry.kt+function:toRoute)

```
fun <T : Any?> NavBackStackEntry.toRoute(route: KClass<*>): T
```

Returns route as an object of type `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute(kotlin.reflect.KClass)`

Extrapolates arguments from `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry#arguments()` and recreates object `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute(kotlin.reflect.KClass)`

| Parameters |
|---|---|
| `route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<*>` | the entry's `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#route()` as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |

| Returns |
|---|---|
| `T` | A new instance of this entry's `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#route()` as an object of type `https://developer.android.com/reference/kotlin/androidx/navigation/package-summary#(androidx.navigation.NavBackStackEntry).toRoute(kotlin.reflect.KClass)` |

### NavBackStackEntry.LocalOwnersProvider

Cmn Artifact: [androidx.navigation:navigation-compose](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/compose/NavBackStackEntryProvider.kt+function:LocalOwnersProvider)

```
@Composable
fun NavBackStackEntry.LocalOwnersProvider(
    saveableStateHolder: SaveableStateHolder,
    content: @Composable () -> Unit
): Unit
```

Provides `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` as `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/compose/LocalViewModelStoreOwner`, `https://developer.android.com/reference/kotlin/androidx/lifecycle/compose/package-summary#LocalLifecycleOwner()` and `https://developer.android.com/reference/kotlin/androidx/savedstate/compose/package-summary#LocalSavedStateRegistryOwner()` to the `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)` and saves the `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)`'s saveable states with the given `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavBackStackEntry).LocalOwnersProvider(androidx.compose.runtime.saveable.SaveableStateHolder,kotlin.Function0)`.

| Parameters |
|---|---|
| `saveableStateHolder: https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder` that holds the saved states. The same holder should be used for all `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry`s in the encapsulating `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` and the holder should be hoisted. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The content `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` |