@Keppp

Где правильно прописать connect если это возможно?

Мне нужно чтобы когда приходил ответ в сервера вызывался экшн setUsersData. Где нужно прописать connect( null, mapDispatchToProps) что он был доступен в onmessage?

import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';

import { usersActions } from 'reducers';

const mapDispatchToProps = dispatch =>
	bindActionCreators(
		{
			setUsersData: usersActions.setUsersData
		},
		dispatch
	);

export default ((wsUrl) => {
	let ws;

	ws = new WebSocket(wsUrl);

	ws.onopen = () => {
		console.log('WS open');
	};

	ws.onmessage = (message) => {
		console.log(message.data);
		// setUsersData(message.data);
	};

	const emit = (message) => {
		if (ws.readyState !== ws.CONNECTING) {
			ws.send(message);
		}
	};

	return { emit };
})('ws://localhost:3000');
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
@abberati
frontend-разработчик
Нигде

Для сайд-эффектов (ваш случай это как раз сайд-эффект) должны использоваться middlewares — погуглите redux-saga, эта библиотека вам подойдёт.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы