通过react-redux的连接在React组件上传递Typescript泛型

时间:2019-07-17 20:26:06

标签: reactjs typescript generics react-redux

我试图在通过react-redux的连接传递的组件中使用泛型。这是精简版:

createTextFinder

当我在没有连接的情况下使用ItemBar时,它看起来像这样:

dependencyOverrides += "io.netty" % "netty" % "3.9.9.Final"
dependencyOverrides += "io.netty" % "netty-all" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-buffer" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-codec" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-codec-http" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-common" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-handler" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-resolver" % "4.1.17.Final"
dependencyOverrides += "io.netty" % "netty-transport" % "4.1.17.Final"

这正常工作。当我这样“连接” ItemBar类时:

export default class ItemBar<T> extends React.PureComponent{
  // ...
}

我现在从打字稿中得到export default class Component extends React.PureComponent { render() { return <ItemBar<number> />; } } 。我认为这是因为连接(可能还有其他任何更高的组件)没有通过泛型传递。有什么办法可以使它正常工作?

1 个答案:

答案 0 :(得分:0)

class ItemBar<T> extends React.PureComponent {
  // ...
}

const connected = connect()(ItemBar);

export class ItemBar<T> extends connected {}

如果每个文件有一个类规则,则可能必须在最后一行禁用tslint。