typescript - Cara mengirim variabel ke fungsi MUI styled di ReactJS


Bagaimana saya bisa meneruskan variabel untuk mengubah properti gaya secara kondisional saat menggunakan fungsi styled MUI? Saya ingin mencapai ini: 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>
  );
}

Salah satu opsi yang berhasil adalah membuat fungsi dan mengopernya ke properti sx seperti ini, tetapi saya bertanya-tanya apakah memungkinkan untuk mengoper variabel langsung ke fungsi styled

const selectstyles = (darkMode) => ({
    "& fieldset": {
        borderColor: darkMode ? 'white' : 'black'
 }
})

<StyledSelect sx={selectStyles(darkMode)} ...></StyledSelect>

Jawaban #1

Pertanyaan yang sama diajukan di sini: https://stackoverflow.com/a/69341672/8972840 Ini akan membantu Anda meneruskan props melalui fungsi styled().