React Hook useRef与useEffect一起使用时为null

问题描述 投票:0回答:2

我想使用React Hook的useRef设置视频流的src对象,但视频引用为null,但出现错误:TypeError:无法在getMedia处将属性'srcObject'设置为null”>。我正在使用useEffect调用记录引用的函数。

奇怪的是,我同时看到null作为当前值。请参阅控制台日志的屏幕截图:

screenshot

我已经阅读了useRef上的文档,并查看了Stack Overflow和Github上的所有其他帖子,但无法弄清楚。最近的帖子是this one。我在做什么错?

const App = () => {
  const webcamRef = useRef(null)

  useEffect(() => {
    getMedia();
  }, [webcamRef])

  const getMedia = async () => {
    try {
      console.log(webcamRef);
      let stream = await navigator.mediaDevices.getUserMedia({ video: true });
      webcamRef.current.srcObject = stream;
    } catch (err) {
      console.error(err);
    }
  };

  return <video id='webcam' ref={webcamRef} />
}

我想使用React Hook的useRef设置视频流的src对象,但是视频ref为null,但出现错误:TypeError:无法在getMedia处将属性'srcObject'设置为null。我正在使用...

javascript reactjs react-hooks webcam getusermedia
2个回答
0
投票

根据您提供的代码,看来我可以正常工作。


0
投票

您应该期望

© www.soinside.com 2019 - 2024. All rights reserved.