我有一个像这样的组件:
function GenericComponent<T>(props: RouteComponentProps) {
...
}
export default withRouter(GenericComponent)
尝试与<GenericComponent<SomeModel> />
一起使用时,出现以下错误:
期望0个类型参数,但得到1个。
如何将T
传递给withRouter?
答案 0 :(得分:1)
通常您不能那样做,我想您可以通过将一个函数用作带有通用T
的工厂来工作,然后返回具有以下类型的组件:
function GenericComponent<T>(props: RouteComponentProps<T>) {
// ...
}
export function factory<T>() {
return withRouter((props: RouteComponentProps<T>) => (
<GenericComponent<T> {...props} />
));
}
// Usage
function App() {
const FooWithId = factory<{ id: string }>();
return (
<FooWithId />
)
}