我想给我的React组件props一个泛型类型,但是当我将它包装在一个更高阶的组件(material-ui)中时,这种类型会丢失,我该如何传递所需的信息?

type Props<T> = {
  data: Array<T>;
}

class MyComponent<T> extends React.Component<Props<T>> {

const StyledComponent = withStyles(styles)(MyComponent)

使用<StyledComponent<myType会产生错误,因为它不了解泛型。

最佳答案

我的赌注是这样注释您的新组件:

const StyledComponent: <T>(props: OuterProps<T>) => JSX.Element = withStyles(styles)(MyComponent) ;


请注意,您可能需要区分OuterPropsInnerProps,请参阅以下我供引用的示例:

https://stackblitz.com/edit/hoc-generics

希望对您有所帮助!

09-28 13:56