Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@ouroboros/react-native-picker

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ouroboros/react-native-picker

A replacement Picker for React-Native that relies on no other packages

latest
Source
npmnpm
Version
0.3.1
Version published
Weekly downloads
29
70.59%
Maintainers
1
Weekly downloads
 
Created
Source

@ouroboros/react-native-picker

npm version Supports Android, iOS, Expo MIT License

Coming to the react-native party a bit late, I discovered that the standard Picker component no longer seems to exist, that it was removed from React-Native sometime at the end of 2021 in favour community packages which themselves started to break in 2022 due to no Picker being available. Since no alternative was presented, and I liked the look and feel of the iOS picker, I decided to attempt to recreate it using in pure react native components and offer it up to the community.

Installation

react-native

npm install @ouroboros/react-native-picker

expo

expo install @ouroboros/react-native-picker

Getting Started

Import Picker

import Picker from '@ouroboros/react-native-picker';

Create a state variable for the picker value:

let [picker, setPicker] = useState('CA');

Add the Picker to your component:

<Picker
    onChanged={setPicker}
    options={[
        {value: 'CA', text: 'Canada'},
        {value: 'MX', text: 'Mexico'},
        {value: 'US', text: 'United States'}
    ]}
    style={{borderWidth: 1, borderColor: '#a7a7a7', borderRadius: 5, marginBottom: 5, padding: 5}}
    value={picker}
/>

Custom Display

Instead of defaulting to a read-only TextInput, you can specify your own component to handle displaying the currently selected value.

import Picker from '@ouroboros/react-native-picker';
import { FontAwesomeIcon } from '@fortawesome/react-native-fontawesome'
import { faCaretDown } from '@fortawesome/free-solid-svg-icons/faCaretDown';
import { useState } from 'react';
import { Text, View } from 'react-native';

function PickerDisplay(props) {
    return (
        <View>
            <Text>{props.text}</Text>
            <FontAwesomeIcon icon={faCaretDown} />
        </View>
    );
}

function App() {
    let [picker, setPicker] = useState('CA');
    return (
        <View>
            <Picker
                component={PickerDisplay}
                onChanged={setPicker}
                options={[
                    {value: 'CA', text: 'Canada'},
                    {value: 'MX', text: 'Mexico'},
                    {value: 'US', text: 'United States'}
                ]}
                value={picker}
            />
        </View>
    );
}

Props

NameTypeRequiredDescription
componentComponentNoA React component which will be used to generate the display instead of a TextInput. Receives the text prop which corresponds to the text of the currently selected option. If set, style and textAlign props are ignored.
onChangedFunctionYesA callback function which receives the new value selected by the user as the only argument
optionsObject[]YesArray of Objects with the value and text properties for each option to be shown
styleobject|object[]NoA single Obejct of styles values or an Array of styles objects to be passed to the input displayed in your component
textAlign['left', 'center', 'right']NoThe alignment of the text in the input
valuemixedYesThe current value selected in the Picker

Keywords

react-native

FAQs

Package last updated on 30 May 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts