具有高阶分量的通用分量

Daa*_*vvy 8 typescript reactjs material-ui

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

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

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

const StyledComponent = withStyles(styles)(MyComponent)
Run Code Online (Sandbox Code Playgroud)

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

Arc*_*hie 2

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

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

Run Code Online (Sandbox Code Playgroud)

请注意,您可能需要区分OuterPropsInnerProps,请参阅下面我制作的示例以供参考:

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

希望有帮助!