【发布时间】:2017-04-12 04:58:57
【问题描述】:
所以基本上我得到了这个套接字,它可以正常工作,向我发送“新订单”消息。
我正在使用 redux,我想调度一个动作,而不是减速器会得到它并且我的商店会被更新。但是这段代码什么也没做!
socket.on('new order', (order) => {
return (dispatch) => {
dispatch(socketNewOrder(order));
}
});
这是我的操作,位于同一个文件中:
export const socketNewOrder = (order) => {
return {
type: 'SOCKET_NEW_ORDER',
payload: order
}
}
我也尝试这样调用我的操作:
socket.on('new order', (order) => {
socketNewOrder(order));
});
它确实调用了这个动作,但是我的减速器没有“听到”这个动作! :(
我听说过一些关于使用中间件的事情,但我就是不知道该怎么做。
谁能解释我在接收套接字消息时如何使用中间件来调度操作,以及为什么我的代码不起作用?感谢和抱歉新手问题
【问题讨论】:
-
您正在返回一个从未从您的套接字事件处理程序中调用的函数。你期望它做什么?而且,由于该函数从未被调用,因此您的
dispatch()函数永远不会被调用。你的意思是这样做:socket.on('new order', (order) => { dispatch(socketNewOrder(order)); });? -
如果我这样做,它说调度不是一个函数!
-
那么
dispatch()是什么? -
直到知道,我认为调度被用来“触发”和行动
标签: sockets socket.io redux action dispatch