MaterialUI按钮HOC,带组件道具



我正在尝试实现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

最新更新