【发布时间】:2022-01-26 17:20:01
【问题描述】:
我想将选择组件的背景颜色更改为“灰色”,并将标签和边框颜色从蓝色更改为另一种颜色,当我单击选择框时会出现。有人可以帮我吗?
我得到了这个错误:
TS2322: 类型 '{ root: string; }' 不可分配给类型“Partial
对象字面量只能指定已知属性,并且类型“Partial
import * as React from 'react';
import InputLabel from '@mui/material/InputLabel';
import MenuItem from '@mui/material/MenuItem';
import FormControl from '@mui/material/FormControl';
import Select, { SelectChangeEvent } from '@mui/material/Select';
import makeStyles from '@mui/styles/makeStyles';
const useStyles = makeStyles((theme) => ({
selectRoot: {
'&:focus':{
backgroundColor:'yellow'
}
}
}));
export interface SelectProps {
label: string;
value:string | undefined;
options:any;
error?: boolean;
onChange?: (value: string) => void;
}
export class FormDDown extends React.Component<SelectProps, {
value: string;
}> {
constructor(props: SelectProps) {
super(props);
this.state = {value: ''};
}
private handleChange = (event: SelectChangeEvent) => {
this.setState({value: event.target.value});
// notify the callback if present
this.props.onChange?.(event.target.value);
}
classes = useStyles();
render() {
let id = this.props.value ?? this.props.label;
let errorBorder = { borderBottom: '2px solid red' };
return(
<div className='forminput'>
<FormControl variant="filled" fullWidth>
<InputLabel id="demo-simple-select-helper-label">{this.props.label}</InputLabel>
<Select
variant="filled"
labelId="demo-simple-select-helper-label"
id="demo-simple-select-helper"
value={this.props.value}
autoWidth
onChange={this.handleChange}
style={{...(this.props.error ? errorBorder : {})}}
classes={{ root: this.classes.selectRoot }}
>
{this.props.options.map((option:any) => {
return (
<MenuItem key={option.value} value={option.label}>
{option.label ?? option.value}
</MenuItem>
);
})}
</Select>
</FormControl>
</div>
)
}
}
【问题讨论】:
-
我相信引用文档的
select组件没有“根”CSS API:mui.com/api/select/#css -
我的回答解决了你的问题吗?
-
@MajidM。首先我要感谢你。我更改了代码以更简单地应用您的概念,但我遇到了另一个错误:(
-
@NewatLeaflet 随时!有什么问题?
标签: javascript css reactjs typescript material-ui