【发布时间】:2020-07-10 10:35:07
【问题描述】:
我是 ts 新手,请不要生我的气。我遇到了材料 ui 的问题。无法为[classes[color + 'CardHeader']]: color 设置类型
抛出错误Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Record<"cardHeader" | "cardHeaderPlain" | "warningCardHeader" | "successCardHeader" | "dangerCardHeader" | "infoCardHeader" | "primaryCardHeader", string>'.
你能解释一下,我在哪里犯了错误吗?
import React, { ReactNode } from 'react';
import classNames from 'classnames';
import useStyles from './styles/cardHeaderStyle';
type CardHeaderProps = {
className: string,
children: ReactNode,
color: ColorType,
plain?: boolean,
};
type ColorType = 'warning' | 'success' | 'danger' | 'info' | 'primary';
const CardHeader = (props: CardHeaderProps): JSX.Element => {
const classes = useStyles();
const { className = '', children, color, plain, ...rest } = props;
console.log('classes', classes);
const cardHeaderClasses = classNames({
[classes.cardHeader]: true,
// [classes['primaryCardHeader']]: color,
[classes[color + 'CardHeader']]: color,
[classes.cardHeaderPlain]: plain,
[className]: className !== undefined,
});
return (
<div className={cardHeaderClasses} {...rest}>
{children}
</div>
);
};
export default CardHeader;
【问题讨论】:
标签: reactjs typescript material-ui