首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型类型的“元素”编译错误不能分配给键入“FunctionComponent<{}>”

类型类型的“元素”编译错误不能分配给键入“FunctionComponent<{}>”
EN

Stack Overflow用户
提问于 2020-03-23 18:26:28
回答 1查看 1.6K关注 0票数 0

使用的原始代码-

代码语言:javascript
复制
import { Create } from '@material-ui/icons';

<DroppableFolder
          count={draftsCount}
          sidebarOpen={open}
          folderId={FolderType.Drafts}
          Icon={Create}
          name="Drafts"
          type="folder"
          url={Communication.drafts}
/>

这是接口-

代码语言:javascript
复制
export default interface DroppableFolderProps {
  count?: number;
  folderId: string;
  label?: Label;
  Icon?: React.ComponentType;
  name?: string;
  type: LinkType;
  url: string;
  sidebarOpen?: boolean;
}

在用此功能组件替换Icon={Create}时,

代码语言:javascript
复制
const DraftIcon = <Icon icon="draft-icon" title="Draft Icon" size="medium" />;

<DroppableFolder
          count={draftsCount}
          sidebarOpen={open}
          folderId={FolderType.Drafts}
          Icon={DraftIcon}
          name="Drafts"
          type="folder"
          url={Communication.drafts}
/>

我知道这个错误-

代码语言:javascript
复制
type 'Element' is not assignable to type 'ComponentClass<{}, any> | FunctionComponent<{}> | undefined'.
  Type 'Element' is not assignable to type 'FunctionComponent<{}>'.
    Type 'Element' provides no match for the signature '(props: { children?: ReactNode; }, context?: any): ReactElement<any, string | ((props: any) => ReactElement<any, string | ... | (new (props: any) => Component<any, any, any>)> | null) | (new (props: any) => Component<...>)> | null'.

对于行Icon={DraftIcon}

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-23 19:09:54

尝试此操作,将DroppableFolderProps中的图标属性更改为IconProps类型

代码语言:javascript
复制
interface DroppableFolderProps{
  Icon:IconProps
}

将const DraftIcon更改为功能组件

代码语言:javascript
复制
const DraftIcon = ()=> <Icon icon="draft-icon" title="Draft Icon" size="medium" />;

并将DraftIcon传递给DroppableFolderProps组件。

代码语言:javascript
复制
<DroppableFolder Icon={ <DraftIcon/> } />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60819522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档