A customiseable FlatList that allows you to select multiple rows.
npm install react-native-select-multipleimportReact,{Component}from'react'import{View}from'react-native'importSelectMultiplefrom'react-native-select-multiple'constfruits=['Apples','Oranges','Pears']// --- OR ---// const fruits = [// { label: 'Apples', value: 'appls' },// { label: 'Oranges', value: 'orngs' },// { label: 'Pears', value: 'pears' }// ]classAppextendsComponent{state={selectedFruits: []}onSelectionsChange=(selectedFruits)=>{// selectedFruits is array of { label, value }this.setState({ selectedFruits })}render(){return(<View><SelectMultipleitems={fruits}selectedItems={this.state.selectedFruits}onSelectionsChange={this.onSelectionsChange}/></View>)}}exportdefaultAppimportReact,{Component}from'react'import{View,Text,Image}from'react-native'importSelectMultiplefrom'react-native-select-multiple'constfruits=['Apples','Oranges','Pears']// --- OR ---// const fruits = [// { label: 'Apples', value: 'appls' },// { label: 'Oranges', value: 'orngs' },// { label: 'Pears', value: 'pears' }// ]constrenderLabel=(label,style)=>{return(<Viewstyle={{flexDirection: 'row',alignItems: 'center'}}><Imagestyle={{width: 42,height: 42}}source={{uri: 'https://dummyimage.com/100x100/52c25a/fff&text=S'}}/><Viewstyle={{marginLeft: 10}}><Textstyle={style}>{label}</Text></View></View>)}classAppextendsComponent{state={selectedFruits: []}onSelectionsChange=(selectedFruits)=>{// selectedFruits is array of { label, value }this.setState({ selectedFruits })}render(){return(<View><SelectMultipleitems={fruits}renderLabel={renderLabel}selectedItems={this.state.selectedFruits}onSelectionsChange={this.onSelectionsChange}/></View>)}}| Prop | Default | Type | Description |
|---|---|---|---|
| items | - | array | All items available in the list (array of string or { label, value }) |
| selectedItems | [] | array | The currently selected items (array of string or { label, value }) |
| onSelectionsChange | - | func | Callback called when a user selects or de-selects an item, passed (selections, item) |
| keyExtractor | index | func | keyExtractor for the FlatList |
| checkboxSource | image | object | Image source for the checkbox (unchecked). |
| selectedCheckboxSource | image | object | Image source for the checkbox (checked). |
| flatListProps | {} | object | Additional props for the flat list |
| style | default styles | object | Style for the FlatList container. |
| rowStyle | default styles | object | Style for the row container. |
| checkboxStyle | default styles | object | Style for the checkbox image. |
| labelStyle | default styles | object | Style for the text label. |
| selectedRowStyle | default styles | object | Style for the row container when selected. |
| selectedCheckboxStyle | default styles | object | Style for the checkbox image when selected. |
| selectedLabelStyle | default styles | object | Style for the text label when selected. |
| renderLabel | null | func | Function for render label. |
| maxSelect | null | int | Maximum number of selected items |
Feel free to dive in! Open an issue or submit PRs.
ISC © TABLEFLIP
A (╯°□°)╯︵TABLEFLIP side project.
