在react中使用socket.io-client时切换compenent?

在react中使用socket.io-client时切换compenent,内部的this指向都会被改变,是什么造成的

在react中使用socket.io-client时切换compenent,内部的this指向都会被改变,是什么造成的?

我的socket.on注册在compnentDidMount中,当次component被移除时没有被销毁,并且回调时间内部的this指向被保留了,试图在componentDidMount顶部将this赋值给that,但是that.setState依旧不生效


喵喵时光机
浏览 1760回答 1
1回答

汪汪一只猫

可以将socket对window,这样就变成一个全局的了,你可以随时修改他。建议将socket的onmessage的值放到redux的state中,不要放到组件的state中。如果只是在组件中使用socket,那么在componentWillUnmount的时候将websocket close掉。
打开App,查看更多内容
随时随地看视频慕课网APP