我有一个Sidebar
组件,它通过props将唯一的图标传递给SidebarRow
子组件。
import SidebarRow from './SidebarRow';
import {
CogIcon,
UsersIcon
} from '@heroicons/react/solid';
const Sidebar: React.FC = () => {
return (
<div className="p-2 mt-5 max-w-5xl xl:min-w-lg">
<SidebarRow src="" title="Tom Mc" />
<SidebarRow Icon={UsersIcon} title="Friends" />
<SidebarRow Icon={CogIcon} title="Account" />
</div>
)
}
export default Sidebar;
在SidebarRow
组件中,一个接口定义了传入的props。这里我试图有条件地渲染一个图像或一个Icon,这取决于传入的是哪一个。
import React from "react";
interface SidebarRowProps {
src?: string
Icon?: React.FC
title: string
};
const SidebarRow: React.FC<SidebarRowProps> = ({ src, Icon, title }) => {
return (
<div className="">
{src && (
<img className="rounded-full" src={src} alt="" width="30" height="30" />
)}
{Icon && (
<Icon className="h-8 w-8 text-blue-500" />
)}
<p className="hidden sm:inline-flex font-medium">{title}</p>
</div>
)
};
export default SidebarRow;
我收到以下关于Icon
组件上的className
属性的错误:
Type '{ className: string; }' is not assignable to type 'IntrinsicAttributes & { children?: ReactNode; }'.
Property 'className' does not exist on type 'IntrinsicAttributes & { children?: ReactNode; }'.ts(2322)
(JSX attribute) className: string
如何定义Icon类型以使className属性不抛出此错误?
谢谢大家!
2条答案
按热度按时间agxfikkp1#
下面的代码工作正常
2mbi3lxu2#
英雄图标的类型在2.0.17中改变了。根据regarding the icons type signature #981,正确的图标类型现在是
或