【发布时间】:2018-01-31 02:53:32
【问题描述】:
我想知道是否有适当的方法来包装类似于 React Native 中的高阶组件的类?我有以下内容:
const RecyclerViewDataWrap = <P>(Wrapee: Class<React$Component<P, *>>) => {
return class {
props: P
constructor(props: P){
this.props = props
}
render(){
return (
<Wrapee {... this.props} />
)
}
}
}
export default RecyclerViewDataWrap
// in some other component file:
export const SomeComponentData = RecyclerViewDataWrap(SomeComponent)
这允许我创建 SomeComponentData 对象,这些对象将使用我告诉它的道具呈现 SomeComponents。但是,我希望能够连同它一起声明泛型类型,以便构造函数可以知道它想要什么类型。理想情况下,我想做这样的事情:
type Props = {
title?: string,
price?: number,
}
export const SomeComponentData = RecyclerViewDataWrap<Props>(SomeComponent)
【问题讨论】:
-
你可以使用 TypeScript 的mixin classes 来做这种事情。例如,看看我的
ts-action包中action函数的实现。
标签: javascript typescript react-native generics flowtype