Bird
Raised Fist0
React Nativemobile~5 mins

Button and Pressable in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main difference between Button and Pressable in React Native?

Button is a simple component for clickable buttons with limited styling options. Pressable is more flexible and lets you customize styles and behavior for different press states.

Click to reveal answer
beginner
How do you handle a tap event on a Pressable component?

You use the onPress prop and assign it a function to run when the user taps the component.

Click to reveal answer
intermediate
Which component provides built-in accessibility support for buttons in React Native?

Button provides built-in accessibility features like role and focus management automatically.

Click to reveal answer
intermediate
How can you change the style of a Pressable when it is pressed?

You can pass a function to the style prop that receives a parameter indicating if the component is pressed, then return different styles accordingly.

Click to reveal answer
intermediate
Why might you choose Pressable over Button in a React Native app?

Because Pressable allows full control over the button's appearance and behavior, letting you create custom interactive elements beyond the default button look.

Click to reveal answer
Which prop do you use to handle tap events on a Button or Pressable?
AonTouch
BonClick
ConPress
DonTap
What does the Pressable component provide that Button does not?
ACustomizable press states and styles
BAutomatic navigation
CBuilt-in text label
DDefault background color
Which component is simpler to use for a basic clickable button with default styling?
APressable
BButton
CTouchableOpacity
DView
How do you change the style of a Pressable when it is pressed?
AYou cannot change styles on press
BUse the <code>pressed</code> prop
CUse <code>onPressIn</code> to change styles
DPass a function to the <code>style</code> prop that receives a pressed state
Which component automatically handles accessibility roles for buttons?
AButton
BPressable
CView
DText
Explain how you would create a custom button using Pressable in React Native.
Think about how to detect press state and change styles dynamically.
You got /4 concepts.
    Describe the advantages and disadvantages of using Button versus Pressable.
    Consider ease of use versus customization.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which React Native component is best for a simple clickable button with default styling?
      easy
      A. Button
      B. Pressable
      C. View
      D. TextInput

      Solution

      1. Step 1: Understand the purpose of Button

        Button is designed for simple clickable buttons with default styles provided by React Native.
      2. Step 2: Compare with other components

        Pressable is for custom touchable areas, View is a container, and TextInput is for text input, so they are not suitable for simple buttons.
      3. Final Answer:

        Button -> Option A
      4. Quick Check:

        Simple clickable button = Button [OK]
      Hint: Simple buttons use Button, custom ones use Pressable [OK]
      Common Mistakes:
      • Choosing Pressable for simple buttons
      • Confusing View with clickable components
      • Using TextInput for buttons
      2. Which of the following is the correct way to import Pressable in a React Native file?
      easy
      A. import { Pressable } from 'react-native';
      B. import Pressable from 'react-native';
      C. import { Pressable } from 'react-native-pressable';
      D. import Pressable from 'react-native-pressable';

      Solution

      1. Step 1: Recall React Native import syntax

        React Native exports components like Pressable as named exports, so we use curly braces in import.
      2. Step 2: Verify package name

        The correct package is react-native, not react-native-pressable.
      3. Final Answer:

        import { Pressable } from 'react-native'; -> Option A
      4. Quick Check:

        Named import from 'react-native' = import { Pressable } from 'react-native'; [OK]
      Hint: Use curly braces for named imports from 'react-native' [OK]
      Common Mistakes:
      • Using default import instead of named import
      • Importing from wrong package
      • Omitting curly braces
      3. What will happen when you press this React Native code snippet?
      import React from 'react';
      import { Pressable, Text, Alert } from 'react-native';
      
      export default function App() {
        return (
           Alert.alert('Pressed!')}>
            Click me
          
        );
      }
      medium
      A. The text changes color automatically on press.
      B. Nothing happens when pressing the text.
      C. The app crashes due to missing Button component.
      D. An alert with message 'Pressed!' appears when pressing the text.

      Solution

      1. Step 1: Understand Pressable behavior

        Pressable wraps the Text and triggers onPress callback when pressed.
      2. Step 2: Check the onPress action

        The onPress calls Alert.alert('Pressed!'), so an alert box will appear on press.
      3. Final Answer:

        An alert with message 'Pressed!' appears when pressing the text. -> Option D
      4. Quick Check:

        Pressable triggers alert on press = An alert with message 'Pressed!' appears when pressing the text. [OK]
      Hint: Pressable triggers onPress alert if defined [OK]
      Common Mistakes:
      • Thinking nothing happens on press
      • Expecting automatic color change without style
      • Confusing Button with Pressable behavior
      4. Identify the error in this React Native code using Pressable:
      import React from 'react';
      import { Pressable, Text } from 'react-native';
      
      export default function App() {
        return (
           console.log('Pressed')}>Click me
        );
      }
      medium
      A. The onPress callback is missing parentheses.
      B. You cannot put text directly inside Pressable without a Text component.
      C. The import statement is incorrect.
      D. The function component must return a single View.

      Solution

      1. Step 1: Check children of Pressable

        In React Native, text must be wrapped inside a Text component; raw strings are not allowed as direct children.
      2. Step 2: Verify other parts

        onPress is correctly defined, imports are correct, and returning a single component is valid.
      3. Final Answer:

        Text must be wrapped in a Text component inside Pressable. -> Option B
      4. Quick Check:

        Text inside Pressable needs Text wrapper [OK]
      Hint: Always wrap text in Text inside Pressable [OK]
      Common Mistakes:
      • Placing raw text directly inside Pressable
      • Missing parentheses in onPress (not true here)
      • Incorrect imports
      5. You want a button that changes its background color to gray while pressed and shows the text "Tap me". Which code snippet correctly uses Pressable to achieve this?
      hard
      A.
      import { Pressable, Text } from 'react-native';
      
       alert('Tapped')}>
        Tap me
      
      B.
      import { Button } from 'react-native';
      
       ({ backgroundColor: pressed ? 'gray' : 'white' })} /> 
      C.
      import { Pressable, Text } from 'react-native';
      
       [{ backgroundColor: pressed ? 'gray' : 'white' }]}> 
        Tap me
      
      D.
      import { Pressable, Text } from 'react-native';
      
      
        Tap me
      

      Solution

      1. Step 1: Understand dynamic styling with Pressable

        Pressable accepts a style function with a pressed boolean to change styles when pressed.
      2. Step 2: Check each option

        import { Pressable, Text } from 'react-native';
        
         [{ backgroundColor: pressed ? 'gray' : 'white' }]}> 
          Tap me
        
        uses the style function correctly to change background color on press.
        import { Button } from 'react-native';
        
         ({ backgroundColor: pressed ? 'gray' : 'white' })} /> 
        incorrectly tries to style Button with a function.
        import { Pressable, Text } from 'react-native';
        
         alert('Tapped')}>
          Tap me
        
        lacks style change.
        import { Pressable, Text } from 'react-native';
        
        
          Tap me
        
        sets static gray background without press effect.
      3. Final Answer:

        Pressable with style={({ pressed }) => [{ backgroundColor: pressed ? 'gray' : 'white' }]} -> Option C
      4. Quick Check:

        Use style function with pressed for dynamic press styles [OK]
      Hint: Use style={({pressed}) => ...} for press feedback in Pressable [OK]
      Common Mistakes:
      • Trying to style Button with style function
      • Not wrapping text in Text component
      • Using static styles without press state
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard