javascript - 类型 '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"
;
解决方案
推荐阅读
- ios - TableViewController MVC - 斯威夫特
- html - 角度:粘性导航栏不起作用(在 localhost:4200 中不显示任何内容),但如果像普通 HTML 一样放入记事本,则可以,为什么?
- c# - 将列表中的类实例属性添加到 C# WFA 中的组合框项
- mysql - SQL 连接 3 个表,然后在单个查询中从第 4 个表中提取数据
- html - 在 CSS 网格 2 列布局中仅指定列位置
- html - 如何在字符串中查找值
- c++ - 为什么我不能使用受保护/私有继承访问派生实例中基类的受保护成员?
- android - Android Save动态添加的文本网格视图
- qt - 如何在 Qt Creator / Designer 中更改小部件的顺序?
- twitter-bootstrap - 页面加载后显示页脚