【问题标题】:socket.io useEffect cleanup function reactsocket.io useEffect 清理函数 react
【发布时间】:2022-01-07 11:37:24
【问题描述】:

我在组件内部调用 socket.on 函数,但我想在组件卸载时停止它, 我正在使用功能组件。

useEffect(() => {
    socket.on("new-chat-message", (firstname, lastname, content, date) => {
      dispatch(
        addMessage({
          firstname: firstname,
          lastname: lastname,
          content: content,
          date: date,
        })
      );
    });
  }, [dispatch, socket]);

我需要知道如何为这个useEffect设置清理功能。

【问题讨论】:

    标签: reactjs socket.io use-effect


    【解决方案1】:

    如文档here中所述

    useEffect(() => {
        const callback = (firstname, lastname, content, date) => {
          dispatch(
            addMessage({
              firstname: firstname,
              lastname: lastname,
              content: content,
              date: date,
            })
          );
        }
    
        socket.on("new-chat-message", callback);
    
        return () => {
           socket.off("new-chat-message", callback);
        }
    }, [dispatch, socket]);
    

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 2020-04-09
      • 2022-01-11
      • 2021-08-20
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多