首页 > 解决方案 > ComponentClass 类型上不存在方法 navigateTo

问题描述

我使用打字稿并做出反应,但以下调用不起作用:

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

感谢您的任何指示。

标签: reactjstypescriptreact-routertypescript2.0

解决方案


react-routerwithRoute被输入为泛型。组件类型应作为通用参数提供:

 let router = withRouter<Router>(Router);

推荐阅读