Здравствуйте. Я пытаюсь создать приложение для чата, используя React и Socket.io. И есть часть, где я отправляю «присоединенное» событие от сервера к клиенту, чтобы сообщить клиенту, что он успешно присоединился к комнате, а также отправить историю чата этой комнаты. Вот как клиент обрабатывает событие «join»:
useEffect(() => {
socket.on('joined', (roomx) => { setCurrentRoom(roomx); setMessages(roomx.messages)});
}, [currentRoom]);
Я передал второй аргумент ([currentRoom]) для useEffect, потому что, если я этого не сделаю, метод «join» будет вызываться 4 или 5 раз .
Я попытался console.logging в обратном вызове setCurrentRoom, чтобы посмотреть, вызывается ли вообще setCurrentRoom, например:
setCurrentRoom(roomx, () => { console.log(currentRoom)};
Однако ничего не регистрируется.
Кто-нибудь знает, что мне здесь не хватает? или делаешь неправильно?