防止React实例

时间:2018-03-14 04:20:35

标签: reactjs typescript typescript-typings

我会保持简短。使用Typescript 2.7.2和“”@ types / react“:”^ 16.0.40“,”

在尝试防范React Component实例时遇到了非常糟糕的问题。

考虑组件

IFooProps {
     element: SomeType
}
...component<IFooProps> {
  ....
  render() {
      return (
          react.cloneElement(element, {onClick: this.myOnClickHandler});
      )
  }
}

如果element是反应组件实例,则onClick将应用于实例,而不是永远运行。但是如果它是一个有效的元素类型I.E div,input,span等onClick将被克隆到元素上并运行正常。

我用什么类型替换“SomeType”以允许JSX元素,如div,span,input等......但不是Component实例。

<Foo element={<Bar/>} should fail typecheck
<Foo element{<div/>} should pass typecheck

iv'e尝试过ReactNode,ReactElement,ReactHTML,JSX.Element等等,似乎没有什么可以直接打字检查它。

0 个答案:

没有答案