javascript - 在 React 类中实现 Slider
问题描述
我有一个当前在反应功能组件中工作的滑块。我想知道如何在 React 类组件中正确实现下面的滑块?
import * as React from 'react';
import Box from '@mui/material/Box';
import Slider from '@mui/material/Slider';
function valuetext(value) {
return `${value}°C`;
}
export default function RangeSlider() {
const [value, setValue] = React.useState([20, 37]);
const handleChange = (event, newValue) => {
setValue(newValue);
};
return (
<Box sx={{ width: 300 }}>
<br /><br />
<Slider
getAriaLabel={() => 'Temperature range'}
value={value}
onChange={handleChange}
valueLabelDisplay="on"
getAriaValueText={valuetext}
/>
</Box>
);
}
解决方案
专注于类组件,您将必须:
- 使用
this.state
而不是React.useState
- 您将需要使用构造函数(并绑定
handleChange
函数) - 就这样
你有一个代码沙箱在这里工作:https ://codesandbox.io/s/clever-wildflower-kzjck?file=/src/ClassSlider.js
就像:
function valuetext(value) {
return `${value}°C`;
}
class ClassComponent extends React.Component {
constructor(props) {
super(props);
this.state = { value: [20, 37] };
this.handleChange = this.handleChange.bind(this);
}
handleChange(event, newValue) {
this.setState({
value: newValue
});
}
render() {
return (
<Box sx={{ width: 300 }}>
<br />
<br />
<Slider
getAriaLabel={() => "Temperature range"}
value={this.state.value}
onChange={this.handleChange}
valueLabelDisplay="on"
getAriaValueText={valuetext}
/>
</Box>
);
}
}
export default ClassComponent;
推荐阅读
- html - 如何将图像放入 html/css 中的圆形图标中?
- c++ - 在 C++ 中的有序链表中插入一个新节点
- docker - 使用注册表镜像使用 Sonatype Nexus 代理 docker hub
- r - 遍历存储在向量中的值
- graphql - 如何防止访问 Amplify graphql 公共 API 中的某些字段
- c# - 使用嵌套列表和动态列填充 DataGrid
- r - 修复 rasterVis::vectorplot 中的文本位置
- cmake - 无法构建 AWS 开发工具包 CPP 示例。Cmake 找不到 AWSSDKConfig.cmake,但该文件存在于我的磁盘上
- excel - 当所有框都相等时,Excel公式返回“好”错误
- javascript - 如何声明一个变量并将其分配给美元的当前汇率?