Material-UI 滑块仅具有离散值?

Jim*_*Ott 5 reactjs material-ui

我想使用 Slider 作为选择器,而不是一大堆单选按钮。它只是看起来更干净。我让它工作得很好,但问题是它总是假设我正在某种规模上进行选择。如果我在中间选择一个值,它会突出显示从开始到我的选择点的所有内容。问题是,我的每个值都是单独的,而不是某种递增规模的一部分(即想象一下,如果选择选项是苹果、香蕉、橙子)。

在下面的链接中,MUI 的滑块类似于示例#1。我需要它像示例#4 一样。 http://react-component.github.io/slider/examples/marks.html

是否可以?或者我只需要使用其他库中的滑块?

谢谢

Rya*_*ell 4

以下是如何通过两个关键自定义来执行此操作的示例:

  1. 隐藏轨道。代表滑块的完整条称为“导轨”。轨道的活动/选定部分称为“轨道”。
  2. 活动标记的样式与非活动标记相同。默认样式会使轨道内的标记变亮,以便它们仍然可见,但如果未显示轨道,则这是不希望的,因为这会使标记更难以看到。
import React from "react";
import { withStyles, makeStyles } from "@material-ui/core/styles";
import Paper from "@material-ui/core/Paper";
import Slider from "@material-ui/core/Slider";
import Typography from "@material-ui/core/Typography";

const useStyles = makeStyles(theme => ({
  root: {
    width: 300 + 24 * 2,
    padding: 24
  },
  margin: {
    height: theme.spacing(3)
  }
}));

const NoTrackSlider = withStyles({
  track: {
    display: "none"
  },
  markActive: {
    backgroundColor: "currentColor"
  }
})(Slider);

export default function CustomizedSlider() {
  const classes = useStyles();

  return (
    <Paper className={classes.root}>
      <div className={classes.margin} />
      <Typography gutterBottom>No Track</Typography>
      <NoTrackSlider step={10} valueLabelDisplay="on" marks defaultValue={30} />
      <div className={classes.margin} />
    </Paper>
  );
}
Run Code Online (Sandbox Code Playgroud)

编辑滑块无轨道