如何使用Typescript在React中为<video>引用定义类型?

杰克·钱伯斯

我正在尝试使用React.js中的ref来控制视频的播放/暂停状态,我的代码可以正常工作,但是我尝试解决了tslint错误:

function App() {
    const playVideo = (event:any) => {
        video.current.play()
    }
    const video = useRef(null)

    return (
        <div className="App">
            <video ref={video1} loop src={bike}/>
        </div>
    );
}

这将导致

TS2531: Object is possibly 'null'.

所以我尝试const video = useRef(null)改为const video = useRef(new HTMLVideoElement())

我得到: TypeError: Illegal constructor

我也尝试过:const video = useRef(HTMLVideoElement)结果是:

TS2339: Property 'play' does not exist on type '{ new (): HTMLVideoElement; prototype: HTMLVideoElement; }'
br

要设置引用的类型,您可以设置以下类型:useRef<HTMLVideoElement>()然后,要处理对象可能存在的事实null(因为在装入组件之前它为null或未定义!),您只需检查它是否存在。

const App = () => {
  const video = useRef<HTMLVideoElement>();
  const playVideo = (event: any) => {
    video.current && video.current.play();
  };

  return (
    <div className="App">
      <video ref={video} loop src={bike} />
    </div>
  );
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用自引用类型返回值定义方法

类型是在未引用的程序集中定义的,如何查找原因?

TypeScript:类型定义(接口)的引用子类型

如何在OpenAPI / Swagger中递归地引用类型定义?

如何通过引用来增强用户定义对象的类型集(STL)类型的数组元素?

在TypeScript中引用Vue.js的类型定义

枚举类型的Moq子属性:从范围``引用的类型为'xxx'的变量'x',但未定义

如何在SWIG中包装使用引用的自定义类型的C ++函数?

类模板,在定义中引用其自身的类型

数据类定义中的引用类类型

从范围“引用的类型为”的变量“,但未定义”

为弱引用对象列表定义python类型提示

对类型INavigationService的引用声称它在Prism中定义,但找不到

如何使用可选类型定义自引用可扩展接口?

如何定义引用其定义的递归数据类型

如何在TypeScript中为动态“ this”值定义类型?

如何在Typescript中为React useReducer钩子动作创建类型定义?

在类主体中的类型定义中引用类名称

列作为用户定义类型和使用引用到用户定义类型之间的区别

在JSON模式中,定义并引用可重用的枚举类型?

无法在JoinColumn中为Symfony2 / Doctrine中的外键引用定义列类型

用户定义类型可以在Cassandra中引用其他用户定义类型吗?

将相等性定义为引用类型的身份?

引用类型 'Route' 声明它在 'System.web' 中定义

如何在 swift 中使用/引用自定义类型的字典中的键?

如何修复 _this.video 未定义

如何在函数定义中引用存在类型变量?

如何使用模板模板参数类型的引用类型模板参数定义类模板

TypeScript 看不到使用引用多种类型的类型定义的类型