Я думаю, что проблема в вашей функции onChange! Вы без разбора используете parseInt, и parseInt может вернуть NaN, если ему дано не числовое значение! Кроме того, ваш onChange немного странный, когда он запускается (при любом изменении входа), он проверяет каждый ввод каждый раз, когда меняется один. Если вы не хотите, чтобы у них была какая-то связь, это не нужно. вы можете дать им каждый индекс в их onChange для доступа к ним в вашем состоянии, а затем использовать его в функции onChange. Вот так.
const onChange = (event, index) => {
...etc
inputs[index].data = parseInt(e.target.value);
// fix your NaN problem around here
...etc
}
рендер вашего компонента:
{data.map((item, i) => {
const bgcolor = RangeSliderColors(item.name);
return (
<div
key={i}
style={{
display: "flex",
flexDirection: "column",
marginTop: "100px"
}}
>
<RangeSlider
name={item.name}
value={item.data}
width={20}
min={0}
minValue={10}
step={item.data > item.min ? 1 : item.min}
max={100}
bgcolor={bgcolor}
onChange={() => onChange(i)} // This will let you know which one is changed.
/>
</div>
);
})}