Logo

Snackbar

Snackbars provide brief feedback about an operation through a message at the bottom of the screen. Snackbar by default uses onSurface color from theme.

Usage

import * as React from 'react';
import { View, StyleSheet } from 'react-native';
import { Button, Snackbar } from 'react-native-paper';

const MyComponent = () => {
  const [visible, setVisible] = React.useState(false);

  const onToggleSnackBar = () => setVisible(!visible);

  const onDismissSnackBar = () => setVisible(false);

  return (
    <View style={styles.container}>
      <Button onPress={onToggleSnackBar}>{visible ? 'Hide' : 'Show'}</Button>
      <Snackbar
        visible={visible}
        onDismiss={onDismissSnackBar}
        action={{
          label: 'Undo',
          onPress: () => {
            // Do something
          },
        }}>
        Hey there! I'm a Snackbar.
      </Snackbar>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'space-between',
  },
});

export default MyComponent;

Props

Type: boolean

Whether the Snackbar is currently visible.

Type: Omit<React.ComponentProps<typeof Button>, 'children'> & { label: string; }

Label and press callback for the action button. It should contain the following properties:

  • label - Label of the action button
  • onPress - Callback that is called when action button is pressed.
Type: number
Default value: 7000

The duration for which the Snackbar is shown.

Type: () => void

Callback called when Snackbar is dismissed. The visible prop needs to be updated when this is called.

Type: React.ReactNode

Text content of the Snackbar.

elevation
Available in v5.x with theme version 3
Type: 0 | 1 | 2 | 3 | 4 | 5 | Animated.Value
Default value: 2

Changes Snackbar shadow and background on iOS and Android.

Type: StyleProp<ViewStyle>
Type: StyleProp<ViewStyle>
Type: React.RefObject<View>
Type: Theme
Edit this page