Skip to main content
Do not use unless you have a very good reason. All elements that respond to press should have visual feedback when touched. This is one of the primary reasons a “web” app doesn’t feel “native”.
TouchableWithoutFeedback handles touch interactions but provides no visual feedback to the user. It should only be used in specific cases where you’re implementing custom visual feedback.

Usage

TouchableWithoutFeedback must have exactly one child. Use a View to wrap multiple children.

Props

(event: GestureResponderEvent) => void
Called when the touch is released, but not if cancelled (e.g., by a scroll that steals the responder lock).
(event: GestureResponderEvent) => void
Called when a touch is engaged, immediately when the finger touches down.
(event: GestureResponderEvent) => void
Called when the touch is released or cancelled.
(event: GestureResponderEvent) => void
Called when the user holds down the press for more than delayLongPress milliseconds.
boolean
default:"false"
If true, disables all interactions for this component.
number
default:"0"
Delay in milliseconds from the start of the touch before onPressIn is called.
number
default:"0"
Delay in milliseconds from the release of the touch before onPressOut is called.
number
default:"500"
Delay in milliseconds from onPressIn before onLongPress is called.
Insets
Extends the touchable area without changing visual layout.
Insets
Defines how far the touch can move off the button before deactivating it.
boolean
If true, doesn’t play system sound on touch.
string
Used to locate this view in end-to-end tests.
TouchableWithoutFeedback also supports accessibility props.

When to Use

Custom Feedback Implementation

When you need to implement custom visual feedback:

Dismissing Overlays

For closing modals or dropdowns when tapping outside:

Keyboard Dismissal

Wrapping content to dismiss keyboard when tapping:

Common Patterns

Image with Custom Overlay

Animated Custom Feedback

Why You Should Avoid It

TouchableWithoutFeedback lacks visual feedback, which:
  1. Reduces user confidence - users don’t know if their tap registered
  2. Makes the app feel unresponsive and “web-like”
  3. Violates platform design guidelines (iOS and Android)
  4. Decreases accessibility for users with motor impairments

Better Alternatives

Use TouchableOpacity

Use Pressable

For more control with proper feedback:

Use TouchableHighlight

For underlay color feedback:

Accessibility Considerations

If you must use TouchableWithoutFeedback, ensure proper accessibility:

Limitations

  • Must have exactly one child (wrap multiple children in a View)
  • No built-in visual feedback
  • Child must be a native component (View, Text, Image, etc.)
  • Cannot use with functional components directly