react-native-selectable-grid
Customizeable selectable (none, one or more) grid.
Installation
- Run:
npm install react-native-selectable-grid --save
oryarn add react-native-selectable-grid
Usage (Example)
;; const fakeData = label: '1' label: '2' label: '3' label: '4' label: '5' ; { return <View> <SelectableGrid data=fakeData /> </View> ; }
Properties
Prop | Type | Description | Default | Required |
---|---|---|---|---|
data |
array | Receives array of data to be displayed | By default receives array of objects with 'label' key | Required |
height |
number | Height of individual box | By default height will be same as width | Optional |
maxPerRow |
number | Maximum boxes per row (all boxes in grid will have the same width and height) | 2 | Optional |
maxSelect |
number | Number of selectable boxes (0 = non-selectable, 1 = only one is selectable, 2 = only two are selectable, so on and so forth) | 1 | Optional |
unselectedRender |
function | Custom component for unselected item | None | Optional |
selectedRender |
function | Custom component for selected item | None | Optional |
unselectedStyle |
style | Style for unselected boxes | None | Optional |
selectedStyle |
style | Style for selected boxes | None | Optional |
onSelect |
function | Return selected item(s) by index everytime user make selections | null | Optional |
Custom Render
You can specify unselectedRender
only and without selectedRender
. By default, it will only change backgroundColor
or any styles you specified in selectedStyle
, when you select a box.
E.g:
<SelectableGrid data=somedata unselectedRender= <View> <Text style= color: 'red' fontSize: 35 >datalabel</Text> </View> selectedRender= <View> <Text style= color: 'blue' fontSize: 35 >datalabel</Text> </View> />
Retrieving Selected Data
There are two ways of retrieving selected data.
- Using
onSelect
- Using
ref
To use onSelect
to retrieve selected data, see example below:
;...<SelectableGrid data=fakeData onSelect= />...
To use ref
to retrieve selected data via selectedData()
function, see example below:
;...<SelectableGrid data=fakeData ref= { thissbRef = ref; }/>...<Button onPress= > <Text children='Retrieve data'></Button>
If nothing is selected, both ways returns null
.