Mi código de la siguiente manera:
import { useEffect, useState } from "react"; import Meeting from "./util/Meeting"; export default function TestMeeting(){ const [peerList, setPeerList] = useState(); const [meeting, setMeeting] = useState(); let peerName; let sUsrAg = navigator.userAgent; if (sUsrAg.indexOf("Edg") > -1) { peerName = "Edge"; } else { if (sUsrAg.indexOf("Chrome") > -1) { peerName = "Chrome"; } else { if (sUsrAg.indexOf("Firefox") > -1) { peerName = "Firefox"; } else { if (sUsrAg.indexOf("Safari") > -1) { peerName = "Safari"; } } } } useEffect(() => { let temp = new Meeting(); temp.setDebug(true); temp.on("data", param => { console.log("Data Event Recevied:" + JSON.stringify(param)); }) temp.on("initialPeerList", (newPeerList) => { console.log("initialPeerList event recevied"); console.log(newPeerList); setPeerList(newPeerList); }); temp.on("newPeer", (newPeer) => { console.log("newPeer event recevied"); console.log(peerList); }); temp.on("removePeer", socketId => { console.log("removePeer event recevied"); }); temp.on("stream", param => { console.log("A stream event received:" + JSON.stringify(param)); }) temp.join(peerName); setMeeting(temp); }, [peerName]); return ( <> </> ) } Primero se recibe el evento "initialPeerList" y se debe actualizar la variable de estado peerList . Después de eso, cuando se recibe el evento "newPeer", suponga que el contenido de la variable de estado peerList no debe estar indefinido, sin embargo, lo hace.
He seguido la página: el método useState set no refleja el cambio inmediatamente
Sin embargo, no resuelve el problema.
¿Por qué es así y cómo podría solucionarlo?