react-native-custom-dropdown-select
Version:
A simple and customizable React Native component for select with dropdown and customizabe style
183 lines (143 loc) • 5.36 kB
Markdown
<div id="top"></div>
<!-- PROJECT LOGO -->
<br />
<h3 align="center">React Native Custom Dropdown Select</h3>
<div align="center">
<img src="./images/close.png" height=300 width=180>
<img src="./images/open.png" height=300 width=180>
</div>
<p align="center">
<br />
<a href="https://github.com/shridharmanitripathi/react-native-custom-dropdown-select/issues">Report Bug</a>
·
<a href="https://github.com/shridharmanitripathi/react-native-custom-dropdown-select/issues">Request Feature</a>
</p>
</div>
<!-- TABLE OF CONTENTS -->
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#Installation & Setup instructions for Functional components">Installation & Setup instructions for Functional components</a></li>
<li><a href="#Installation & Setup instructions for Class based components">Installation & Setup instructions for Class based components</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a></li>
<li><a href="#contributing">Contributing</a></li>
<li><a href="#license">License</a></li>
<li><a href="#contact">Contact</a></li>
</ol>
</details>
<!-- GETTING STARTED -->
## Getting Started
A simple and customizable React Native component for select with drop down and customizable styles
### Prerequisites
In order to use this package with a react native app you will need the development environment configured for react native i.e., Node, the React Native command line interface, a JDK, and Android Studio.
### Installation & Setup instructions for Functional components:
1. Install the package in root directory of the project with :
```
npm i react-native-custom-dropdown-select
```
2. Let's import the dependency with:
```
import DropDown from 'react-native-custom-dropdown-select';
```
3. In order to manage the toggling behaviour of dropdown we are going to make use of state, let's import that and initialise the state:
```
import React,{useState} from 'react';
const [selected, setSelected] = useState();
```
4. Styling the icon is optional :
```
const iconColor = '#ffa500';
const styleForIcon = {
marginLeft: 80, color: iconColor
}
```
5. Data can be passed down as props and can be defined in one of the two ways :
```
// Using key value
const data = [
{ label: 'One', value: '1' },
{ label: 'Two', value: '2' },
{ label: 'Three', value: '3' },
{ label: 'Four', value: '4' },
{ label: 'Five', value: '5' },
];
// Using arrays
const data = [
'one', 'two', 'three'
];
```
6. Finally let's define a handler to log/ manipulate the data :
```
const selectData = (value) => {
setSelected(value);
console.log('You selected ::>>', value);
}
```
<p align="right">(<a href="#top">back to top</a>)</p>
### Installation & Setup instructions for Class based components:
1. Install the package in root directory of the project with :
```
npm i react-native-custom-dropdown-select
```
2. Let's import the dependency with:
```
import DropDown from 'react-native-custom-dropdown-select';
```
3. In order to manage the toggling behaviour of dropdown we are going to make use of state, define the initial state:
```
constructor(props) {
super(props);
this.state = {
selected: null,
};
}
```
4. Styling the icon is optional and the same can be done with inside render:
```
const iconColor = '#ffa500';
const styleForIcon = {
marginLeft: 80, color: iconColor
}
```
5. Data can be passed down as props and can be defined in one of the two ways :
```
// Using key value
data: [
{ label: 'One', value: '1' },
{ label: 'Two', value: '2' },
{ label: 'Three', value: '3' },
{ label: 'Four', value: '4' },
{ label: 'Five', value: '5' },
],
// Using arrays
data: ['One', 'Two', 'Three']
```
<p align="right">(<a href="#top">back to top</a>)</p>
<!-- USAGE EXAMPLES -->
## Usage
Lets use the component
```
<DropDown disabled={false} icon='ellipsis-h' data={data} onSelect={(value) => selectData(value)} iconStyle={styleForIcon} />
```
<p align="right">(<a href="#top">back to top</a>)</p>
<!-- CONTRIBUTING -->
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
<p align="right">(<a href="#top">back to top</a>)</p>
<!-- LICENSE -->
## License
Distributed under the MIT License. See `LICENSE.txt` for more information.
<p align="right">(<a href="#top">back to top</a>)</p>