Запустить событие через сокет - PullRequest
0 голосов
/ 23 марта 2020

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

Например:

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

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

Но каждый раз, когда я получаю следующее ошибка:

Ошибка: неверный вызов ловушки. Хуки могут вызываться только внутри тела компонента функции

Как можно решить эту проблему?

1 Ответ

0 голосов
/ 23 марта 2020

Ваш ответ:

" Хуки могут вызываться только внутри тела компонента функции "

, в вашем случае это среднее использование <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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...