【发布时间】:2021-09-11 17:59:30
【问题描述】:
是否可以在 React rc-slider Range 组件上设置单值?目前要做到这一点,我需要将第二个手柄拖到第一个前面或第一个拖到第二个后面,如果我们在边缘值 上,这种行为允许用户将手柄拖到栏杆后面
我想在它显示的第三张图片上进行设置,例如。 39 到 39。这是我的代码
import React, { useState } from "react";
import Slider, { Range } from "rc-slider";
import "rc-slider/assets/index.css";
export const RangeSlider = ({
min,
max,
error,
displayUnit,
stereo,
onChange
}) => {
const [minVal, setMinVal] = useState(min);
const [maxVal, setMaxVal] = useState(max);
const props = {
onChange: value => {
if (stereo) {
setMinVal(value[0]);
setMaxVal(value[1]);
} else {
setMinVal(value);
setMaxVal(value);
}
onChange(value);
},
min: min,
max: max,
defaultValue: stereo ? [0, 100] : 0
};
return (
<>
{error && (
<span className="position-outside">
<i className="fas fa-exclamation-circle fa text-danger mt-2"></i>
</span>
)}
<div className="text-primary h6 mb-3">
<strong>
{stereo &&
`Od ${minVal}${
displayUnit ? " " + displayUnit : ""
} do ${maxVal}${displayUnit ? " " + displayUnit : ""}`}
{!stereo &&
`${minVal}${displayUnit ? " " + displayUnit : ""}`}
</strong>
</div>
{stereo ? <Range {...props} /> : <Slider {...props} />}
</>
);
};
我知道单范围滑块适用于单个值,尽管客户已请求此功能。 谢谢
【问题讨论】:
-
如果您的滑块只需要一个值,您很可能不需要该外部包。只需使用浏览器原生滑块,例如:
<input type="range" id="volume" name="volume" min="0" max="11"> -
我在项目中有几个,客户要求让它按照我上面描述的方式工作,但是谢谢:)
-
不清楚你想要达到什么目的。如果您能更好地解释您的要求,那将有所帮助
-
我刚刚注意到我的标题与我很抱歉的内容完全不匹配
标签: javascript reactjs rc-slider