如何在typescript中的react-router的RouteHandler上编写自己的属性

时间:2015-08-16 19:46:32

标签: typescript reactjs react-router

我每晚使用TS,以便能够使用JSX位。我也通过definitelytyped(tsd install react-router)使用react-router打字。

以下是主路线处理程序的渲染:

render() {
  var name = this.context.router.getCurrentPath();
  return (
    <div>
      <RouteHandler key={name} hub={this.props.hub} state={this.state}  />
    </div>);
}

此代码部分存在许多问题:

  • 上下文已被指定为{},没有任何修改它的机会。 我可以摆弄那个。
  • 我传递给RouteHandler的属性未在相应的类型...
  • 上指定
  

错误TS2339:类型'RouteHandlerProp'上不存在属性'key'   ...

但是根据我的理解,以这种方式传递的属性将被传递给React Component,由处理程序呈现。

有人知道我可以做些什么来编写打字稿吗?

1 个答案:

答案 0 :(得分:2)

  

上下文已指定为{},没有任何机会进行修改

使用胖箭()=>。更多:https://www.youtube.com/watch?v=tvocUcbCupA

  

我传递给RouteHandler的属性未在相应的类型

中指定

TypeScript接口是开放式的。将内容添加到RouteHandler

中的vendor.d.ts界面

https://github.com/borisyankov/DefinitelyTyped/blob/5109e1269d6ab8e8e73b1a5e85d8ceb836d3099f/react-router/react-router.d.ts#L133-L146