Здравствуйте. Есть простой код, не понимаю почему моё состояние не обновляется:
const [stream, setStream] = useState();
useEffect(() => {
async function startCapture() {
localMediaStream.current = await navigator.mediaDevices.getUserMedia({
audio: true,
video: {
width: 1280,
height: 720,
}
});
addNewClient(LOCAL_VIDEO, () => {
const localVideoElement = peerMediaElements.current[LOCAL_VIDEO];
if (localVideoElement) {
localVideoElement.volume = 0;
localVideoElement.srcObject = localMediaStream.current;
}
});
return localMediaStream.current
}
startCapture()
.then((local) => {
socket.emit(ACTIONS.JOIN, {room: roomID});
setStream(local);
})
.catch(e => console.error('Error getting userMedia:', e));
console.log(stream); // undefined
return () => {
localMediaStream.current.getTracks().forEach(track => track.stop());
socket.emit(ACTIONS.LEAVE);
};
}, [roomID, stream]);
Подскажите пожалуйста, что не так?
Спасибо.