javascript - react 如何判断组件离开,或者手动控制组件的离开
ringa_lee
ringa_lee 2017-04-11 11:00:55
[JavaScript讨论组]

场景如下:

现在用react实现了基于websocket的动态图形展示
一个TabPanel组件里里有三个子的Tab组件,每个子组件一张动态图
也就是每个组件一个websocket对应一张图

已经实现websocket和图标展现
但是当我切换tab,也就是切换图的时候,上一个tab所对应的websocket并没有关闭
导致websocket的连接数随tab的切换增加,直到每个tab都有一个连接,且页面不刷新,即TabPanel不重新渲染,连接始终存在,数据量一大很影响页面效率

我想做的是在每次切换tab的时候断开与前一个tab的websocket连接,每次切换都重新连接
这样的话就要捕捉到tab组件的离开状态,如何在切换子组件的时候去手动控制上一个子组件中的信息?

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
大家讲道理

试试在组件销毁阶段,断开连接。

componentWillUnmount() {
    // disconnect
}
高洛峰
const son = React.createClass({
    render(){
        return (
            this.props.isRender? <p>123</p>:null
        )
    }
})
const father = React.createClass({
    getInitialState(){
      return {
         isRender: true, 
      }
    },
    onClick(){
        this.setState({isRender: !this.state.isRender});
    }
    render(){
        return (
            <button onClick={this.onClick}>点我</button>
            <son isRender={this.state.isRender} />
        )
    }
})
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号