useEffect(() => {
if (authUser) {
const socket = io("http://localhost:5000", {
query: {
userId: authUser._id,
},
});
setSocket(socket);
socket.on("getOnlineUsers", (users: string[]) => {
setOnlineUsers(users);
});
// the error disappeared when removing this line
return () => socket.close();
}
else {
if (socket) {
socket.close();
setSocket(null);
}
}
}, [authUser, socket]);
我收到这个奇怪的错误说明
Argument of type '() => (() => Socket<DefaultEventsMap, DefaultEventsMap>) | undefined' is not assignable to parameter of type 'EffectCallback'.
Type '(() => Socket<DefaultEventsMap, DefaultEventsMap>) | undefined' is not assignable to type 'void | Destructor'.
Type '() => Socket<DefaultEventsMap, DefaultEventsMap>' is not assignable to type 'void | Destructor'.
Type '() => Socket<DefaultEventsMap, DefaultEventsMap>' is not assignable to type 'Destructor'.
Type 'Socket<DefaultEventsMap, DefaultEventsMap>' is not assignable to type 'void | { [UNDEFINED_VOID_ONLY]: never; }'
我不完全理解这个错误。请问有人可以帮我解决这个问题吗?预先感谢您。