Я рендерил два ползунка на экране, один для максимального расстояния и один для возраста (который имеет две перетаскиваемые иконки). Я хочу установить соответствующие значения в моем хранилище Redux, основываясь на том, какой компонент используется в данный момент. Например, если пользователь перемещает ползунок диапазона возраста, он должен установить значения ageLow и ageHigh в хранилище, но если ползунок расстояния изменяется, устанавливается значение maxDistance.
Я мог бы установить maxDistance или возрастной диапазон в зависимости от того, является ли rangeEnabled истинным или ложным внутри Child, но это кажется очень негибким, если я захочу позже добавить еще один слайдер.
Каков наилучший способ достижения моей цели здесь?
Родительский компонент:
const Settings = ({ navigation }) => {
return (
<View style={styles.sliderView}>
<LabeledSlider label="Maximum Distance" min={1} max={100} />
<Space height={5} />
<LabeledSlider label="Age Range" rangeEnabled={true} min={18} max={100} />
</View>
)
}
Дочерний компонент:
import RangeSlider from 'rn-range-slider'
const LabeledSlider = memo(({ label, rangeEnabled=false, min, max }) => {
return (
<View>
<View>
// ... label
</View>
<RangeSlider
style={{width: 350, height: 80}}
rangeEnabled={rangeEnabled}
gravity={'center'}
min={min}
max={max}
step={1}
labelStyle='none'
selectionColor={SAFFRON}
blankColor={INDIAGREEN}
onValueChanged={(low, high) => {...something}/>
</View>
)
})
![enter image description here](https://i.stack.imgur.com/hO23l.png)