Я думаю, что вы неправильно использовали marks
.Они используются, чтобы просто добавить указание о конкретной стоимости.Я не думаю, что они должны быть интерактивными, как вы, кажется, хотите.Вы можете добавить 2 кнопки, чтобы сделать работу за вас.И подключите его с помощью ползунка.
Я реализовал это так:
function SliderWrapper({ max, min, step }) {
const [value, setValue] = useState(min);
return (
<>
<button onClick={() => setValue(Math.max(0, value - 10))}>-</button>
<Slider
onChange={value => setValue(value)}
value={value}
step={step}
min={min}
max={max}
/>
<button onClick={() => setValue(Math.min(100, value + 10))}>+</button>
</>
);
}
Вы можете увидеть реализацию в действии здесь: https://codesandbox.io/s/1y1lzvxm6l. Я использовалuseState
Реагирует на ловушку, но вы можете реализовать ее как компонент класса с state
, если требуется.