Skip to main content
Version: Next 🚧

Migrate from rn-range-slider

rn-range-slider hasn't had a release since September 2022, and it draws nothing itself: renderThumb, renderRail and renderRailSelected are required, so every app builds its own slider parts. Slider draws each platform's slider, iOS, Material 3 or web, with a value bubble, labelled marks, a screen-reader label on each thumb (thumbLabels) and arrow keys on the web.

Code changes​

- import RangeSlider from 'rn-range-slider';
+ import { Slider } from '@elik56a/react-native-pickers';

- <RangeSlider
- min={0}
- max={100}
- step={1}
- low={low}
- high={high}
- renderThumb={renderThumb}
- renderRail={renderRail}
- renderRailSelected={renderRailSelected}
- renderLabel={renderLabel}
- onValueChanged={(l, h) => { setLow(l); setHigh(h); }}
- />
+ <Slider
+ range
+ min={0}
+ max={100}
+ step={1}
+ value={[low, high]}
+ onChange={([l, h]) => { setLow(l); setHigh(h); }}
+ valueLabel="drag"
+ />

Props​

rn-range-sliderReact Native Pickers
low / highvalue={[low, high]} with range
disableRangeleave range out: value is one number
min / max / stepmin / max / step
onValueChanged(low, high, fromUser)onValueChanging while dragging, onChange when the finger lifts; neither fires when you set value
onSliderTouchStart / onSliderTouchEndonChange fires on release
renderThumb / renderRail / renderRailSelecteddrawn by the design; restyle with styles={{ thumb, track, activeTrack }}
renderLabel / renderNotch / floatingLabelvalueLabel="drag" or "always", with formatValue
allowLabelOverflow—
minRange—
disableddisabled
—marks, snapToMarks, showSteps, minimumIcon / maximumIcon

See all migration guides for other libraries, and Comparison for when another library is the better choice.