当前位置: 首页 > 知识库问答 >
问题:

材质UI:如何在滑块中获取值?

丁业
2023-03-14

我正在使用Material UI Slider,我想通过onChange函数获取值。

我的代码如下:

const SliderScale: React.FC = () => {
  const classes = useStyles();
  const [inputValue, setInputValue] = useState(0);

  const updateRange = (value: number) : void => {
    setInputValue(value);
  };


  return (
    <div className={classes.root}>
      <Typography id="discrete-slider" gutterBottom>
        value
      </Typography>
      <Slider
        defaultValue={0}
        value={inputValue}
        getAriaValueText={valuetext}
        aria-labelledby="discrete-slider"
        valueLabelDisplay="on"
        step={0.5}
        marks={false}
        min={0}
        max={10}
        onChange={updateRange}
      />
    </div>
  );
};

export default SliderScale;

这不起作用,并显示此错误。

(JSX属性)onChange?:((事件: React.更改事件

有人知道如何得到它吗?

共有2个答案

吕德业
2023-03-14

您需要将updateRange函数更改为如下内容:

const updateRange  = (event: React.ChangeEvent<{}>, newValue: number | number[]) => {
    setInputValue(newValue as number[]);
}
薛扬
2023-03-14

文档中的onChange签名为:

函数(事件:对象,值:数字|数字[])=

新值位于第二个参数中,而不是onChange回调的第一个参数中。将您的代码更改为:

<Slider {...props} onChange={(_, value) => setInputValue(value)} />

 类似资料:
  • 我不知道如何在材质UI中居中放置按钮。这是我的代码: 我怎样才能使我的按钮居中?

  • 从 1.2 版本开始, UI 的 Sprite 组件支持自定义材质的使用,其使用界面如下图: 其使用方法与其他材质并无不同,但由于 Sprite 面板有基于 UI 内置材质的功能,所以有一些需要注意的点: 当设置自定义材质数量为 0 或为空时,会使用默认材质进行渲染,面板功能及使用方法可参考 Sprite UI 并不支持多材质,自定义材质的数量最多为一个 当使用了 ui 自定义材质之后,面板上的

  • 我想从材质UI更改(减少)工具栏的默认高度 我已经提到了如何更改材质UI工具栏高度?但我仍然面临着这个问题 问题是,当我超过50岁时,我能看到变化。但当我想降低高度时,我无法做到。 我如何才能实现这一点? 我的代码:

  • 我试图得到分页从材料UI,但我想中心的箭头和页数的按钮。 我试图通过创建

  • 我有一个如下: 然而,所有的标签都向右对齐,我想把它们对齐到中心。使用对象,我可以只传递以属性,但是,它与不一样。 我怎样才能像处理

  • 平滑度 平滑度参数,同时存在于标准着色器的金属模式和镜面模式中。 平滑度概念同时支持镜面模式和金属模式,并且工作方式也一样。默认情况下,没有指定金属或镜面纹理贴图,材质的平滑度通过一个滑动器控制。这个滑动器允许你控制『表面微观节』或整个表面的平滑度。 不管是哪种着色器模式,如果为金属属性或镜子属性使用了纹理题图,平滑度的值将从该贴图中读取。更多细节会在本页的后面介绍。 平滑度的值范围为从 0 到