tsx 里面 React 组件装饰器 render 函数里面找不到装饰器函数传入的 Component

我想在react 组件里面用装饰器实现给组件绑定 pubsub 的功能

装饰器实现如下:

// withPubsub.tsx

class PubsubClass {/* 具体实现省略,问题不是出在这个部分 */}

export default function withPubsub<Props, State> (Comp: React.ComponentClass<Props>) {
  return class extends React.Component<Props, State> {
    private pubsub: typeof PubsubClass
    constructor (props: Props) {
      super(props)
      this.pubsub = PubsubClass
    }
    componentWillUnmount () {
      this.pubsub.off()
    }
    render () {
      return <Comp { ...this.props } /> // 这里编译出错,提示找不到 Comp
    }
  }
}

图片描述

阅读 2.5k
1 个回答
"compilerOptions": {
    "jsx": "react"
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题