TS-React:useRef 使用

不能给 useRef 的 current 属性赋值,提示一下错误信息:

Cannot assign to 'current' because it is a read-only property.(不能给current属性复制,因为它是一个只读属性。)

代码如下所示:

typescript 复制代码
let cameraMediaStream = useRef<MediaStream>(null);

/**
 * 打开摄像头
 **/
const openCamera = async (cameraId = curCameraId) => {
    try {
      // 关闭已打开的摄像头
      if (cameraMediaStream) await closeCamera();
      // Cannot assign to 'current' because it is a read-only property.
      cameraMediaStream.current = await ImageCapture.openCamera({ cameraId, video: videoRef.current, width, height });
    }
    catch (err: any) {
    	// 错误信息提示...
    }
}

解决方案:将 current 属性变为非只读属性,useRef 的泛型参数中增加【| null】即可把 current 属性变为非只读属性。

typescript 复制代码
let cameraMediaStream = useRef<MediaStream | null>(null);
相关推荐
Devlive 开源社区31 分钟前
技术日报|微软数据科学课程登顶日增651星,AI编程GUI工具AionUi与React视频制作工具霸榜前三
react.js·microsoft·ai编程
摘星编程38 分钟前
React Native + OpenHarmony:BottomSheet联动效果实现
javascript·react native·react.js
前端之虎陈随易43 分钟前
前端通用插件开发工具unplugin v3.0.0发布
前端·typescript
孟无岐1 小时前
【Laya】HttpRequest 网络请求
网络·typescript·游戏引擎·游戏程序·laya
meng半颗糖1 小时前
vue3+typeScript 在线预览 excel,word,pdf
typescript·word·excel
Easonmax1 小时前
基础入门 React Native 鸿蒙跨平台开发:积分商城页面实现(积分商品+兑换+记录)
react native·react.js·harmonyos
Easonmax1 小时前
小白基础入门 React Native 鸿蒙跨平台开发:用基础知识模拟一个——系统设置页面
react native·react.js·harmonyos
wuhen_n2 小时前
类型断言:as vs <> vs ! 的使用边界与陷阱
前端·javascript·typescript