A Tutorial to Build a React Native Popup Menu- Step-by-Step Guide

A Tutorial to Build a React Native Popup Menu- Step-by-Step Guide

Ever tried sorting items in an online shop or picking the perfect text format in your favorite note app? A handy React native popup menu can make all the difference. If you’ve been searching for a trustworthy guide to weaving together a React Native Popup Menu, you’ve landed on the right page. Let’s explore creating a menu that pops up on the user’s mobile interface. And hey, if you ever feel stuck, there’s always professional assistance from a React Native development company that you can ask for. Whether you’re building solo or with a team, let’s explore the wonders of React Native together.

Learning Objective

Before you go further, here’s a quick rundown so you know what you can expect from this article:

  • Ready to set up your space for framing that smart React Native popup menu? This article has got you.
  • Learn the art of designing interfaces that don’t just look good but feel responsive to every tap and swipe. 
  • Express the magic of animations and transitions to make your menu come alive.

Excited? By the end, you’ll have a similar project to show off.

Just a quick note: Some basic coding understanding will help, especially if you plan on playing around with code editors. Let’s create magic!

Pre-requisite Criteria

Let’s get one thing straight: You don’t need to be a coding expert to tackle this. If you’ve got a little React Native knowledge, you’re ready for this React Native popup menu.

But, before moving forward, you should emphasize a few things to ensure you’re set for the project.

The Setup Procedure

Beginning a React Native project needs preparation. Ensure you have node.js, npm, Android Studio, and the VS code editor installed. In the domain of React Native, there are two primary CLIs to choose from: either Expo CLI or React Native CLI. For the purposes of this guide, you require React Native CLI, so please ensure it’s installed on your system.

For detailed instructions on the setup, consult the thoroughly curated article titled ‘How to set up the React Native Development Environment’. It’s important to note that the current guide focuses on Android. For those setting up for iOS, procedures may differ.

Creating Folder for the Project

So, you’re all set to start, but wait! Where are you going to save all that code and those essential assets? Just like you’d need a box for those memorable photos, you need a neat folder for your project. 

Now, have you navigated to the folder from your terminal yet?

Once you’re in, type in this command on your project terminal: npx react-native init POP –version 0.69.5.

Thinking ‘POP’? That’s the default name we have used for this guide. If ‘POP’ doesn’t fit well to your criteria, feel like naming it ‘MAGIC_CASTLE’ or ‘MY_AWESOME_APP’? Go ahead and change the name ‘POP’ for whatever feels right. 

External Library Installation

Want a pro-tip? Installing third-party libraries in advance can be a real time-saver. Why? Instead of building components from the ground up, you can just get what you need. For this project, you need ‘Entypo’ from “@expo/vector-icons”. This icon set isn’t just useful, it’s has the option of customization for mobile apps and other digital products.

Even though it’s part of the expo package, @expo/vector-icons fits well with a React Native CLI project—with an extra setup. Just open your project’s command prompt and type in npm install @expo/vector-icons.

You’ve now integrated @expo/vector-icons into your project.

Coding Segment for the Project React Native Popup Menu

Now, let’s get into the core of the project. Consider three files: App.js, data.js, and ScrollViewMenu.js.

Let’s understand the purpose of each of these files and the steps to construct them effectively. 

Mapping Data for User Interface

What you need to do in this section is deal with a list of icons and their associated names, likely intended for some user interface like a menu or a toolbar.

Create a Data.js file in your project folder and save all the data or menu opinions you want to display on your React Native popup menu.

Importing from “@expo/vector-icons”:

The code begins with an import statement that takes the Entypo icon set from the “@expo/vector-icons” library. The @expo/vector-icons is a third-party React native library that provides a lot of icon sets, and Entypo is one of them.

Defining the Data:

Next, define a constant named ‘data’. It should be an array. Each item within this array is an object, and these objects contain:

id: An identifier that can be helpful for operations like mapping, filtering, or finding specific items. It ensures that each icon-data pairing is distinctly recognized.

name: A string that represents the label of a particular action or feature, like ‘Mute’, ‘Battery’, ‘Block’, etc. This can be used as a descriptor label.

icon: This contains an Entypo icon component. Use this component to display a unique icon for each item. The icon’s type (like “sound-mute” or “block”) is specified using the name property of the Entypo component. 

For a better understanding, let’s take a small segment of the snippet.


  id: 1,

  name: “Mute”,

  icon: <Entypo name=”sound-mute” size={24} color=”black” />,


It is an object that indicates there’s an icon within the label “Mute”. If you use this in your app, you’ll see an icon of a muted speaker, sized at 24 pixels and colored black, given by the “sound-mute” value in the Entypo component.

Creating the Scrollable Popup Menu

The ScrollViewMenu component adds a button with three dots placed vertically on the screen. A popup menu appears when users press it. It has items or action lists with corresponding icons taken from the data array. 

Here is the code snippet from the ScrollViewMenu.js file.

Start with the Preliminary Setup

The basic UI elements (StyleSheet, Text, View, FlatList, ScrollView) are from the react-native library. On the other hand, the react-native-popup-menu library provides the dropdown menu components such as the ‘Menu’, ‘MenuProvider’, ‘MenuOptions’, ‘MenuOption’, and ‘MenuTrigger’.

Also, don’t forget the Entypo icon set from @expo/vector-icons. To add the action items, source all the data from a local module (../data).

Component Explanation

Here is a detailed explanation of the components imported from the react-native-popup-menu library.


This is the wrapper for all menu components. It facilitates interaction and manages states for the child menu components. 


This represents the actual popup menu. This component enables the dropdown behavior.


This is the component that, when pressed, will display the popup menu. It displays three vertical dots from the Entypo icon set.


This is the container for the list of added items in the popup menu. Inside it, there’s a ScrollView, which ensures that if there are many items, the user can scroll through them.

Mapping the Data

The data is a list of objects (from the local directory (../data). Here, each object has a name and an icon. You can present this data within the ScrollView using the .map function. For each item, there is a menu option. 


Represents an individual item in the popup. This component displays the item’s name as text and its icon. The defined styling in the code snippet ensures each item has its name on one side and its icon on the other.

Styling Section of the Snippet

The ‘Container’ defines the layout for the ‘MenuProvider’. You can stretch the container to fill the screen and position the menu centrally, both vertically and horizontally.

Create the Foundational Screen For React Native Popup Menu

Importing React Native Essentials

The StyleSheet, Text, and View components are imported from react-native. These are default or native components in the React Native ecosystem. It is used for layout and styling.

Custom Component Consideration

Import the ScrollViewMenu component from the ./components/ScrollViewMenu directory. This custom component handles a scrollable list or popup menu functionality.

Main Application Component – App()

The primary component of this project is the ‘App’. The layout and content returned by this function will be displayed whenever the app is launched.

The main layout container for the app is a ‘View’ component. There is a ScrollViewMenu component. The exact functionality of ScrollViewMenu is defined in its own file. In the App.js file, it’s a child component that contains a menu for users.

React Native offers the StyleSheet component to create style without much effort. It’s similar to CSS.

Here is the snippet of the App.js file.

Verification or Testing Stage

To confirm the successful creation of your project, it’s crucial to run and test it, whether on an emulator or an actual smartphone.

To test on an emulator, proceed as follows:

  • Open the terminal within your project directory.
  • Input the command npm install to install all dependencies.
  • Then, execute npx react-native run-android in the terminal.

Upon doing this, your application should launch on the emulator. Examine its functionality and design in a way that aligns with your expectations. Remember, adjustments or customization can be made as needed for further refinement.

Related posts

Leave a Comment