【问题标题】:Run event over socket通过套接字运行事件
【发布时间】:2020-07-03 11:39:50
【问题描述】:

我使用一个文件来获取套接字响应,然后我将响应导航到其他文件。

例如:

import socket from 'socket.io-client';
import { ShowModal } from '../components/Modal';

socket.on('message', function(data){
     ShowModal(data);
})

但每次我得到以下错误:

错误:无效的挂钩调用。 Hooks 只能在函数组件内部调用

如何解决这个问题?

【问题讨论】:

    标签: reactjs sockets events


    【解决方案1】:

    你的答案是:

    "只能在函数组件的主体内部调用钩子"

    在您的情况下,这意味着在您的应用文件上使用 <ShowModal />。那么ShowModal大部分有以下内容:

    EG:

    import socket from 'socket.io-client';
    
    class ShowModal extends Component {
        _isMounted = false;
        constructor(props) {
            super(props);
            this.state = {};
        }
        modal(data){
         if(this._isMounted){
              // Your Codes
         }
        }
        componentDidMount() {
            this._isMounted = true;
            socket.on("message", data => this.modal(data));
        }
        render(){
            // Put Your codes
            return (
                <>
                </>);
        }
    }
    
    
    export default ShowModal;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 2013-12-26
      相关资源
      最近更新 更多