【发布时间】:2020-05-20 16:13:03
【问题描述】:
const [socket, setSocket] = useState(null);
useLayoutEffect(() => {
auth().onAuthStateChanged(async (user) => {
if (!!user) {
props.login();
const token = await user.getIdToken(true);
setSocket(await getSocket(token, props.store));
} else {
console.log(socket); // return null when logout
if (socket) socket.close();
props.logout();
setSocket(null);
}
});
}, []);
我正在创建一个使用 socket.io 和 firebase 的 React 应用程序。当用户登录时,我验证并存储套接字,当我注销时,我想断开套接字但我不能。 socket返回null,这是为什么呢?
【问题讨论】:
-
你确定你的 getSocket() 返回非空值吗?
标签: reactjs firebase socket.io