React state is empty inside stomp callback function

179 Views Asked by At

I'm trying to update react state afte getting data from the websocket connection.

  cont[myState,setState] = useState([array of some values]);
      useEffect(() => {
    if (d1 && d2) {
      /* Begin Setup */
      const socket = new SockJS(WS_URL, {}, {CheckOrigin: () => false});
      socket.onopen = () => {
        // console.log('Connected to server');
      };
      socket.onclose = () => {
        // console.log('Disconnected from server');
      };

      stompClient = Stomp.over(socket);
      stompClient.connect({}, () => {
        stompClient?.subscribe(`/topic/chat/${d1.id}`,onMessageReceiveEvent);
        /// Subscribe for any user repliyng for the selected chat
        stompClient?.subscribe(`/topic/chat/status/${d1.id}`, onCurrentReplyEvent);
      });      
    }
    return () => {
      stompClient?.disconnect();
    }
  },[d1,d2]); 



  const onMessageReceiveEvent = (res) =>{
    console.log(mystate) //// printing [] array, althogh it has values.
  }

I'm not able to get why myState is empty inside the callback function of stomp subscriber?

Please help.

0

There are 0 best solutions below