How do I write makeStyles()
so that it allows me to use both theme variables and props?
I've tried this:
const useStyles = makeStyles(theme => ({
appbar: props => ({
boxShadow: "none",
background: "transparent",
marginTop: theme.spacing(2),
marginBottom: theme.spacing(2),
color: theme.palette.getContrastText(props)
}),
}));
And called it in the component with:
const classes = useStyles(backgroundColor);
Where backgroundColor
is a prop on the component with type CSSProperties["backgroundColor"]
But I'm getting the error:
TypeError: Cannot read property 'rules' of undefined
at RuleList.onUpdate (C:Users...
ode_modulesjssdistjss.cjs.js:944:14)
at RuleList.update (C:Users...
ode_modulesjssdistjss.cjs.js:923:12)
at StyleSheet.update (C:Users...
ode_modulesjssdistjss.cjs.js:1178:39)
at attach (C:Users...
ode_modules@material-uistylesmakeStylesmakeStyles.js:141:18)
at C:Users...
ode_modules@material-uistylesmakeStylesmakeStyles.js:262:7
at useSynchronousEffect (C:Users...
ode_modules@material-uistylesmakeStylesmakeStyles.js:207:14)
at C:Users...
ode_modules@material-uistylesmakeStylesmakeStyles.js:254:5
at Layout (C:Users....nextserverstaticdevelopmentpagesindex.js:1698:17)
at processChild (C:Users...
ode_modules
eact-domcjs
eact-dom-server.node.development.js:2888:14)
at resolve (C:Users...
ode_modules
eact-domcjs
eact-dom-server.node.development.js:2812:5)
at ReactDOMServerRenderer.render (C:Users...
ode_modules
eact-domcjs
eact-dom-server.node.development.js:3202:22)
at ReactDOMServerRenderer.read (C:Users...
ode_modules
eact-domcjs
eact-dom-server.node.development.js:3161:29)
at renderToString (C:Users...
ode_modules
eact-domcjs
eact-dom-server.node.development.js:3646:27)
at render (C:Users...
ode_modules
ext-serverdistserver
ender.js:86:16)
at renderPage (C:Users...
ode_modules
ext-serverdistserver
ender.js:211:20)
at ctx.renderPage (C:Users....nextserverstaticdevelopmentpages\_document.js:2404:22)
100 | handleSignUpClick,
101 | backgroundColor
102 | }) => {
> 103 | const classes = useStyles(backgroundColor);
104 | return (
105 | <AppBar className={classes.appbar}>
106 | <Container maxWidth="lg">
edit: I'm using version 4.0.0-beta.1 of material core and styles
question from:https://stackoverflow.com/questions/56111294/how-to-use-theme-and-props-in-makestyles