所以基本上我得到了這個套接字,這正在正確地發送給我'新訂單'的消息。關於socket.on回調的調度行爲()
我使用的是REDX,我想調度一個動作,而不是減速器會得到它,我的商店將被更新。但是這個代碼並沒有做任何事情!
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));
});
它叫做動作確實,但是我的減速器沒有「聽到」這個動作! :(
我聽說過一些,使用中間件,但我無法弄清楚如何做到這一點。
任何人都可以解釋我如何使用中間件派遣行動,因爲我收到套接字協議的消息,爲什麼我的代碼不能正常工作?謝謝,對不起新手questio
您正在返回一個永遠不會從您的套接字事件處理程序調用的函數。你期望做什麼?而且,由於該函數從未被調用過,所以'dispatch()'函數永遠不會被調用。你只是想這麼做:'socket.on('new order',(order)=> {dispatch(socketNewOrder(order)); });'? – jfriend00
如果我這樣做,它說調度不是一個功能! –
那麼什麼是'dispatch()'? – jfriend00