Как получить доступ к пользовательской теме Material-UI внутри дочерних элементов ThemeProvider

#reactjs #material-ui #jsx

Вопрос:

Я хочу получить доступ к цветам, которые я установил в настраиваемых theme CustomCheckbox.js компонентах MUI внутри, и я не смог найти, как это сделать.

 import { createTheme, ThemeProvider } from "@material-ui/core/styles";
import CustomCheckbox from "./CustomCheckbox";

export default function someFunction(){
  const theme = createTheme({
    palette: {
      type: "dark",
      background: {
        default: "#242729",
        paper: "#323638",
    },

  return (
  <ThemeProvider theme={theme}>
    <CustomCheckbox defaultChecked />
  </ThemeProvider>
  )
}
 

Я много искал, но ничего не смог найти. Есть какие-нибудь идеи?

Ответ №1:

Вы можете использовать

 const useStyles = makeStyles((theme) => ({
  paper: {
    backgroundColor: theme.palette.background.paper,
  }, 
}))
 

В компоненте CustomCheckbox:

 const CustomCheckbox = () => {
  const classes = useStyles()
  ....
  return (
     <div className={classes.paper}>
  ....