向材质 ui 菜单添加动态样式,makeStyles 不起作用

时间:2021-02-22 10:15:34

标签: reactjs material-ui

我正在尝试以这种方式在材质 ui Menu 上动态生成类:

const useStyles = (props) => {
  return makeStyles({
    paper: props.style,
  });
};

const StyledMenu = (props) => {
  const classes = useStyles(props)();
  return <Menu {...props} className={classes.paper} />;
};

render() {
const { state, fnsMenuBtn, fieldsMenuBtn, props } = this;
const { fnsMenuIsOpen, fieldsMenuIsOpen } = state;
return (
<StyledMenu
          id="fnsMenuEl"
          anchorEl={fnsMenuBtn}
          keepMounted
          open={fnsMenuIsOpen}
          style={{ border: "1px solid blue" }}
          onClose={(e) => {
            vm.setState((state, props) => {
              return {
                fnsMenuIsOpen: !state.fnsMenuIsOpen,
              };
            });
          }}
        >
          {Object.keys(formulajs).map((fnName) => (
            <MenuItem onClick={(e) => {}} key={fnName}>
              {fnName}
            </MenuItem>
          ))}
 </StyledMenu>
)
}

但想要的样式从未添加到菜单中 怎么了 ? 否则怎么办?

1 个答案:

答案 0 :(得分:0)

Insted using className 尝试使用 classes

const StyledMenu = (props) => {
 const classes = useStyles(props)();
 return <Menu {...props} classes={{paper: classes.paper}} />;
};