方法navigateTo在ComponentClass类型上不存在

时间:2018-04-25 05:25:17

标签: reactjs typescript react-router typescript2.0

我使用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并减轻这一点。但我想知道自己为什么不起作用?它应该工作,但我显然遗漏了一些东西。

感谢您的任何指示。

1 个答案:

答案 0 :(得分:1)

react-router withRoute is typed as a generic。组件类型应作为通用参数提供:

 let router = withRouter<Router>(Router);