Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
February 8, 2020 23:06
September 6, 2022 23:04
August 22, 2022 23:21
February 24, 2019 14:00
February 8, 2020 22:56
November 23, 2016 13:33
November 4, 2017 12:59
July 26, 2018 19:53
September 6, 2022 23:04


Extensible popup menu component for React Native for Android, iOS and (unofficially) UWP and react-native-web.


  • Simple to use popup/context menu
  • Multiple modes: animated, not animated, slide in from bottom or popover
  • By default opening and closing animations
  • Optional back button handling
  • Easy styling
  • Customizable on various levels - menu options, positioning, animations
  • Can work as controlled as well as uncontrolled component
  • Different lifecycle hooks
  • RTL layout support

Community driven features:

  • Support for UWP, react-native-web and react-native-desktop
  • Typescript definitions

We thank our community for maintaining features that goes over our scope.

Context Menu, Slide-in Menu Popover
Popup menu demo Popup menu demo


npm install react-native-popup-menu --save

If you are using older RN versions check our compatibility table.

Basic Usage

Wrap your application inside MenuProvider and then simply use Menu component where you need it. Below you can find a simple example.

For more detailed documentation check API.

// your entry point
import { MenuProvider } from 'react-native-popup-menu';

export const App = () => (
    <YourApp />

// somewhere in your app
import {
} from 'react-native-popup-menu';

export const YourComponent = () => (
    <Text>Hello world!</Text>
      <MenuTrigger text='Select action' />
        <MenuOption onSelect={() => alert(`Save`)} text='Save' />
        <MenuOption onSelect={() => alert(`Delete`)} >
          <Text style={{color: 'red'}}>Delete</Text>
        <MenuOption onSelect={() => alert(`Not called`)} disabled={true} text='Disabled' />



Contributions are welcome! Just open an issues with any idea or pull-request if it is no-brainer. Make sure all tests and linting rules pass.

React Native Compatibility

We keep compatibility on best effort basis.

popup-menu version min RN (React) version
0.13 0.55 (16.3.1)
0.9 0.40
0.8 0.38
0.7 0.18