У меня есть приложение, написанное на Reactjs и Redux. С axios он работает хорошо, но я бы хотел использовать socket.io, так что в режиме redux в try:
export const getOne = (id) => async dispatch => {
socket.emit('getOne', id);
console.log('test');
socket.on('get', function(msg) {
console.log(msg);
dispatch({ type: GET, payload: msg });
});
};
Если я вызываю это действие в первый раз, все работает хорошо - генерируется сокет, при возврате функции верните мне правильное msg, а console.log вернет «test», но если я снова вызову эту функцию, то console.log вызывается как единое ( это нормально) но к сожалению "socket.on" вызывается два раза. Затем, если я нажму, функция «socket.on» будет вызвана три раза и т. Д. *
Когда я должен поставить свою функцию socket.on('get', function(msg)
? Или что я могу сделать с этим вопросом?