作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
自 React 16.3 起,可以使用 React.createRef()
访问 DOM 元素。我也在使用Flow在我的项目中,但是 documentation still uses the old way .
不幸的是,下面的代码失败了:
/* @flow */
import * as React from 'react';
export class TestComponent extends React.Component<{}> {
myRef: React.Ref<HTMLDivElement>
constructor(props: any) {
super(props)
this.myRef = React.createRef()
}
render() {
return (
<div ref={this.myRef} />
)
}
}
出现以下错误:
Cannot instantiate `Ref` because in type argument `ElementType`:
- Either a callable signature is missing in `HTMLDivElement` [1] but exists in
`React.StatelessFunctionalComponent` [2].
- Or `HTMLDivElement` [1] is incompatible with statics of `React.Component` [3].
如何正确输入?
最佳答案
查看 React.createRef() 的流类型定义:
declare export function createRef<ElementType: React$ElementType>(
): {current: null | React$ElementRef<ElementType>};
我能够做这样的事情:
/* @flow */
import * as React from 'react';
export class TestComponent extends React.Component<{}> {
myRef: { current: null | HTMLDivElement }
constructor(props: any) {
super(props)
this.myRef = React.createRef()
}
render() {
return (
<div ref={this.myRef} />
)
}
}
关于reactjs - 如何将 Flow 与 React.createRef() 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076176/
我是一名优秀的程序员,十分优秀!