我正在尝试实现MaterialUI按钮组件的HOC:
import {Button as MUIButton, ButtonProps} from '@material-ui/core';
import * as React from 'react';
export const Button = (props: ButtonProps) => <MUIButton {...props} />;
我这样使用它:
import {Button} from '../hocs/button.tsx';
import {Link} from 'react-router-dom';
...
<Button
variant='contained'
color='primary'
component={Link}
to={`${url}/new`}
>
Add something
</Button>
但是我遇到一个错误
类型'IntrinsicAttributes&上不存在属性'component';{children?:ReactNode;classes?:{root?:string|undefined;label?:strig|undefine;text?:strin|undefines;textPrimary?:strip|undefired;…24 more…;iconSizeLarge?:string | undefineed;}| undefine。。。还有9个。。。;变体?:"text"|。。。还有2个…|未定义;}&选择<……'。TS2322
那么,我做错了什么以及如何修复它?
谢谢。
编辑:我想,问题是ButtonProps是一个泛型,依赖于props.component
类型。
找到解决方案。重点是复制默认的扩展接口。
https://github.com/mui-org/material-ui/issues/19461#issuecomment-581523926