为什么我在这里收到“预期的赋值或函数调用,而不是看到一个表达式”错误?
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 调用旧套接字的错误。
我在第二次使用时收到“预期的赋值或函数调用,而不是看到一个表达式”错误,它正确地找到了套接字端口,我执行的 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 调用旧套接字的错误。