如何使用React redux和socket.io将数据传递给客户端?



我不熟悉socket。到目前为止,也许我正在努力做一些非常简单的事情。

server.js:

let socket = null;
export const connect = (stockSymbol) => {
socket = io('http://localhost:4000');
socket.on('connect', () => {
console.log('connected');
socket.on(stockSymbol, (data) => {
tickData(data);
});
socket.emit('ticker', stockSymbol);
});
socket.on('disconnect', () => {
console.log('disconnected');
});
};

这是actions:

export const TICK_DATA = 'TICK_DATA_ACTION';
export const tickData = data => {
console.log(data, 'works here');
return dispatch => {
console.log(data, 'but doesnt work here');
dispatch({ type: TICK_DATA, payload: data });
};
};

问题是动作被触发了,但是分派功能不起作用。我认为绑定调度对象有一些问题,但我不知道如何正确地实现它到服务器文件。请分享你的想法。

尝试传递调度函数作为一个参数从react组件调用connect函数,并执行dispatch(tickData(data));

let socket = null;
export const connect = (dispatch,stockSymbol) => {
socket = io('http://localhost:4000');
socket.on('connect', () => {
console.log('connected');
socket.on(stockSymbol, (data) => {
dispatch(tickData(data));
});
socket.emit('ticker', stockSymbol);
});
socket.on('disconnect', () => {
console.log('disconnected');
});
};

最新更新