Expo UI and Router for iOSExpo SDK 57 and later, iOS only
Modifiers

redacted

Adds a redaction reason to this view hierarchy, replacing rendered content with placeholders. Useful for skeleton loading states. Maps to SwiftUI's redacted(reason:).

redacted(reasons)

ParameterTypeDescription
reasons(optional)'placeholder' | 'privacy' | 'invalidated' | ('placeholder' | 'privacy' | 'invalidated')[]The redaction reason or reasons to apply (an empty array applies none). Defaults to 'placeholder'. Default: 'placeholder'

Adds a redaction reason to this view hierarchy, replacing rendered content with placeholders. Useful for skeleton loading states. Maps to SwiftUI's redacted(reason:).

placeholder redacts the whole subtree; privacy and invalidated redact only descendants marked privacySensitive() or invalidatableContent().

  • Reasons are additive and can be combined in an array; use unredacted() to exempt a subtree.
  • The invalidated reason requires iOS 17+.

Returns: ModifierConfig

See: Official SwiftUI documentation.

Works with

You can add redacted to any view. It changes what you see on 38 of the 39 components.

No visible effect

These components accept it, but you see no change.

ComponentWhy nothing happens
SpacerIt changes how the view is drawn, and Spacer draws nothing that you can see.

Sources

The original Expo docs for this page:

On this page