我使用typescript并做出反应,而且我有以下调用不起作用:
router.navigateTo(uri.path);
路由器是标准的反应组件:
class Router extends React.Component < IRouterProps, any > {
public constructor(props, context) {
super(props, context);
}
public navigateTo(path: string) {
(this.props as any).history.push(path);
}
}
出口很简单:
let router = withRouter(Router) ;
export default router;
我得到的错误:
Property 'navigateTo' does not exist on type 'ComponentClass<Pick<any, never>>
我知道我可以做(router as any).navigateTo
并减轻这一点。但我想知道自己为什么不起作用?它应该工作,但我显然遗漏了一些东西。
感谢您的任何指示。
答案 0 :(得分:1)
react-router withRoute
is typed as a generic。组件类型应作为通用参数提供:
let router = withRouter<Router>(Router);