Как передать пропс в React

У меня есть React приложение в которое я импортировал сокеты

import io from 'socket.io-client';
const serverUrl = 'http://localhost:3333/';
const socket = io(serverUrl);

Я успешно использую сокеты в данном компоненте, но я хочу пользоваться им в компоненте находящимся ниже по иерархии, поэтому я передаю его в пропс

<CodeField socket={socket} roomId={roomId} fontSize={fontSize} options={options} />

И пытаюсь использовать socket в этом компоненте

const CodeField = ({ roomId, fontSize, socket, options }) => {
  const [code, setCode] = React.useState('const greetings = "Hello World!"');

  React.useEffect(() => {
    socket.emit('sendText', { roomId, code });
  }, [code]);

  const changeHandler = (value) => {
    setCode(value);
  };

  return (
    <div style={{ fontSize: fontSize }} className="code">
      <CodeMirror
        value={code}
        options={options}
        onBeforeChange={(editor, date, value) => changeHandler(value)}
      />
    </div>
  );
};

Смысл в том что на сервере я получаю в консоль undefined каждый раз когда происходит emit событие на сервер

io.on("connection", (socket) => {
    socket.on("sendText", ({roomId, text}) => {
        console.log(text)
        socket.broadcast.to(roomId).emit("getText", text)
    })
})

так же я пробовал экспортировать сокет и подключать его в дочернем компоненте, так он тоже не работает

export const socket = io(serverUrl);

Почему socket не работает в этом компоненте? В чем проблема?


Ответы (0 шт):