1

I am trying to create a chat application with reactjs,nodejs and socket io.I am trying to set a value to a react usestate whenever a new message is sent,but it only works in one browser.For example,when I send a message from Chrome to Firefox ,the value of the useState changes in FireFox.But When I send a message from Firefox to chrome,the value does not change in Chrome.There is no problem in the backend.

Here is the code:

 const[msg,setmsg]=useState(null)

 useEffect(()=>{
   socket?.current.on("chat",(s)=>{
     setmsg(s)
     console.log(s)//logs an object
   })
 },[])

 useEffect(()=>{
   console.log(msg)//logs an object in one browser only
 },[msg])

I think that this question is simillar to the one that I am asking,but it has not been answered yet

slebetman
  • 109,858
  • 19
  • 140
  • 171
Fleet
  • 31
  • 4
  • looks like the issue is because of the socket not because of the useEffect...just verify whether socket is getting connected successfully in chrome – Arun pandian M Oct 20 '21 at 02:23
  • @ Arun pandian M The socket is connected successfully in both the browser,because when I console.log(s),it successfully logs the message,in both of them. – Fleet Oct 20 '21 at 05:20
  • since my answer didn't help you, I remove it. hope to get the proper answer soon bro. – nima Oct 21 '21 at 06:38
  • No problem.And thanks for clearing so many doubts of mine! – Fleet Oct 21 '21 at 09:25

0 Answers0