为什么我在这里收到“预期的赋值或函数调用,而不是看到一个表达式”错误?

Why am i getting " Expected an assignment or function call and instead saw an expression" error here?

我在第二次使用时收到“预期的赋值或函数调用,而不是看到一个表达式”错误,它正确地找到了套接字端口,我执行的 socket.on 错了吗? 套接字服务器正确启动,我什至让我的控制台登录 index.js 输出“用户已连接”

  const [socket, setSocket] = useState(null)

  useEffect(() => {
    setSocket(io("ws://localhost:8900"))
  }, [])

  useEffect(() => {
    socket?.on("welcome", (message) => {
     
      console.log(message)
    })
  }, [socket])

index.js 套接字

const io = require("socket.io") (8900, {
    cors: {
        origin: "http://localhost:3000",
    }
})
io.on("connection", (socket) =>{
    console.log("a user is connected")
   io.emit("welcome","hello this is socket server")
})

编辑:更奇怪的是,“你好,这是一个套接字服务器”实际上是控制台日志,然后这个错误仍然发生......不知道为什么......

解决了我的问题,如果您在 React 中使用 useEffect,则将套接字设置为 socket.current,如果您只是使用 const 套接字,那么没问题。他们将是任何刷新或更新的套接字问题,导致尝试使用不同的 socketId 调用旧套接字的错误。