typescript - Kako proslijediti varijablu funkciji MUI styled u ReactJS-u
Kako mogu prenijeti varijablu da uvjetno mijenjam svojstva stilova koristeći MUI styled funkciju? Želim postići ovo: borderColor: darkMode ? 'white' : 'black'
const StyledSelect = styled(Select)(() => ({
"& fieldset": {
borderColor: 'dark',
}
}));
function BasicSelect() {
const { darkMode }= useSelector((state: {options: {darkMode: boolean}})=>state.options)
const [age, setAge] = React.useState('');
const handleChange = (event: SelectChangeEvent) => {
setAge(event.target.value as string);
};
return (
<FormControl fullWidth>
<InputLabel id="demo-simple-select-label">Age</InputLabel>
<StyledSelect
labelId="demo-simple-select-label"
id="demo-simple-select"
value={age}
label="Age"
onChange={handleChange}
>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</Select>
</FormControl>
);
}
Jedna od opcija koja funkcionira je napraviti funkciju i proslijediti je u sx prop ovako, ali se pitam je li moguće proslijediti varijablu izravno u styled funkciju
const selectstyles = (darkMode) => ({
"& fieldset": {
borderColor: darkMode ? 'white' : 'black'
}
})
<StyledSelect sx={selectStyles(darkMode)} ...></StyledSelect>
Odgovor #1
Isto pitanje postavljeno je ovdje: https://stackoverflow.com/a/69341672/8972840 Ovo će vam pomoći proslijediti propse kroz styled() funkciju.