首页 > 解决方案 > 类型 'ClassNameMap<>' 不可分配给类型 'string'.ts

问题描述

React 初学者,我在这里有页面 A.tsx:

  const useStyles = makeStyles((theme) => ({
    root: {
      flexGrow: 1,
      backgroundColor: theme.palette.background.paper,
      display: "flex",
      height: 224,
    },
    selectionCard: {
      minWidth: 300,
      maxWidth: 320,
      padding: "1px",
    },
    tabs: {
      borderRight: `1px solid ${theme.palette.divider}`,
    },
    components: {
      padding: theme.spacing(1),
      textAlign: "left",
      color: theme.palette.text.primary,
    },
    button_basic: {
      padding: theme.spacing(1),
      textAlign: "center",
      color: theme.palette.text.primary,
    },
    formControl: {
      minWidth: 195,
    },
    selectEmpty: {
      marginTop: theme.spacing(2),
    },
  }));
  const classes = useStyles();

我想将类作为道具传递给<B classes={classes} /> 然后在 B.tsx 中我想将它传递给<C classes={classes} /> 并在那里使用它例如

className={classes.formControl}

但在页面 A.tsx 它给出了这个错误 Type 'ClassNameMap<"root" | "selectionCard" | "tabs" | "components" | "button_basic" | "formControl" | "selectEmpty">' is not assignable to type 'string'.ts(2322)

这种东西的正确类型是什么?类名映射?

我可以这样做吗?:

classes: ClassNameMap<
| "root"
| "selectionCard"
| "tabs"
| "components"
| "button_basic"
| "formControl"
| "selectEmpty"

;

标签: javascripthtmlreactjstypescriptfunction

解决方案


推荐阅读