将ref的回调注释为HTMLElement是最好的方法吗?我假设99%的时间是这个类型,不是吗?
https://facebook.github.io/react/docs/more-about-refs.html
https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-string-refs.md
<input type="text" ref={(ref: HTMLElement) => this.myTextInput = ref} />
答案 0 :(得分:3)
目前,Flow并不特别了解ref
属性,并允许您将ref
属性设置为任何内容。我无法找到跟踪此问题的GitHub问题so I opened one。
就Flow而言,它所关心的只是你传递给ref
参数类型检查的表达式。所以它可以让你写
<Foo ref={123} />
但不是
<Foo ref={"boom" * 10} />
我不是React refs的专家,但是,它确实听起来像input
元素将传递HTMLInputElement
,这是HTMLElement
的子类型。因此,使用HTMLElement
或HTMLInputElement
应该表达您的意图。