我正在使用classname向一个React组件中添加许多类。在我的按钮中,我希望有机会向组件中添加一个类,如果我想的话,它应该是可选的。
但我得到一个类型错误,见所附图像
我如何才能摆脱错误?
- 按钮代码 *
import classnames from "classnames";
import styles from "./button.module.css";
interface ButtonProps {
children: JSX.Element;
onClick: () => void;
small?: boolean;
className?: string;
}
function Button({ onClick, children, small, className }: ButtonProps) {
return (
<button
className={classnames(styles.button, {
[styles.small]: small,
[className]: !!className,
})}
onClick={onClick}
>
{children}
</button>
);
}
export default Button;
字符串
- 错误:*
第一个月
2条答案
按热度按时间jutyujz01#
您的
className
被用作属性名,即使它可能未定义。请注意,可选的string
实际上是string | undefined
。我将使用对象扩展来实现条件性。classnames函数的新参数:
字符串
bvuwiixz2#
如果转发
props.className
的条件只有!!props.className
,那么可以直接将它们作为参数传递给classnames()
:字符串
如果你想插入
!!props.className
以外的逻辑,可以将其添加为&&
的第一次检查:型
示例如下:
型
️订单很重要:
型