【发布时间】:2021-12-26 01:43:16
【问题描述】:
我在react 应用程序中使用Socket.io。我想在应用加载后立即发出第一个请求,所以我将我的第一个 emit 放入 useEffect 钩子中:
useEffect(() => {
socket.emit("getCollectionsAndVolumes", socket.id);
}, []);
但它不起作用。它不做任何请求。所以我意识到一个问题是因为可能还没有连接套接字所以我放了一点timeout like:
useEffect(() => {
const initialGetTimeout = setTimeout(() => {
clearTimeout(initialGetTimeout);
}, 1000);
})
它有效,但这只是一种解决方法,我应该如何在应用加载后立即触发第一个请求? React 有没有其他方法可以做到这一点?
【问题讨论】:
标签: reactjs sockets socket.io use-effect