Core Concepts

Inactive Behavior

Control whether inactive Blank Stack screens pause, hide, unmount, or keep running.

inactiveBehavior controls what Blank Stack does with a route after it becomes inactive.

TSX

1<Stack.Screen
2 name="Detail"
3 component={DetailScreen}
4 options={{ inactiveBehavior: "hide" }}
5/>

Screen Transitions v4 uses React Activity for inactive screens. Version 3 used react-native-screens.

The default is "hide" on native and "unmount" on web.

hide

hide pauses the inactive subtree and removes its presentation. Component state stays mounted, while effects are cleaned up and updates are deprioritized.

Use hide for normal screens that should return warm without spending work while covered.

pause

pause pauses the inactive subtree but preserves its last painted frame. The screen remains visible behind transparent routes, overlays, and transitions that expose older content.

Use pause when hidden React work should stop but the previous frame must remain on screen.

unmount

unmount removes the inactive subtree. Local state is lost, effects clean up, and returning to the route mounts the screen again.

Use it for screens where releasing state and native resources matters more than warm back navigation.

keep

keep leaves the inactive subtree mounted, visible, and running. Pointer events are disabled while the route is inactive, but React effects and updates continue.

Use it only when covered content must stay live.