【问题标题】:Dispatch using socket io使用 socket io 调度
【发布时间】:2018-07-06 13:09:14
【问题描述】:

如何使用套接字更改状态?

socket.js

import {getNearbyUser} from '../routes/Search/modules/Search'
export function socketAction(action,data){
    if(action == 'login'){
        socket.emit('login',data);
    }
    else if(action == 'book'){
        socket.emit('book',data);
    }

    socket.on('nearbyUser', getNearbyUser);
}

Search.js

export function getNearbyUser(data){
    alert(data.latitude + '\n' + data.longitude);
    return (dispatch) => {
        dispatch({
            type: GET_NEARBY_HANDYMAN,
            address: data
        })
    }
}

server.js

socket.on('handyman',(data) => {
    console.log(data);
    socket.to('customerRoom').emit('nearbyHandyman',data);
})

它会提醒经纬度,但状态没有改变或没有调度。

【问题讨论】:

    标签: react-native redux socket.io react-redux create-react-native-app


    【解决方案1】:

    getNearbyUser 返回一个从未被调用的函数。试试:

    socket.on('nearbyUser', data => getNearbyUser(data)(dispatch));
    

    不确定dispatch 的定义位置,但您也需要将其传入。

    【讨论】:

    • dispatch 在 Search.js 中定义
    • 好的,那么就不需要作为参数传递了
    • 您需要提供更多详细信息。是否调用了调用 dispatch 的匿名函数?如果是,是否定义了调度?
    • 我的另一个函数就是这样,但不同的是它们不是在套接字中调用的。
    猜你喜欢
    • 2015-03-23
    • 1970-01-01
    • 2018-03-19
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多