【问题标题】:socket.IO with useEffect and React Native will not update Redux state multiple times带有 useEffect 和 React Native 的 socket.IO 不会多次更新 Redux 状态
【发布时间】:2020-09-10 13:58:33
【问题描述】:

我在我的 React 项目中具有相同的功能,并且运行良好,但在 react native 中,它似乎只更新了一次 redux 状态,甚至在第一次调用更新 redux 后,useEffect 也不会更新。知道会是什么吗?

这是代码

useEffect(() => {
    console.log('check useEffect')
    socket.on('connect', function () {
        console.log('check socket', socket.connected);
    });
    socket.on('newDriverAccepted', function (driver) {
        console.log(driver)
        actions.addOrder(driver)
    });
})

actions.js

export const addOrder = order => {
    return {
        type: "ADD_ORDER",
        payload: order
    };
};

reducers.js

case "ADD_ORDER":
    return Object.assign({}, state, {
        orders: [...state.orders, action.payload]
    });

【问题讨论】:

    标签: javascript react-native redux socket.io


    【解决方案1】:

    请尝试以下代码

    useEffect(() => {
        console.log('check useEffect')
        socket.on('connect', function () {
            console.log('check socket', socket.connected);
        });
        socket.on('newDriverAccepted', function (driver) {
            console.log(driver)
            actions.addOrder(driver)
        });
    }, [socket, actions, driver])
    

    【讨论】:

    • 请对此答案投赞成票,以便其他人获得帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多