<div className='LineEcharts'>

    !LineData ?
    
    <div className='loader_wrap'>
    
        <Spin />
        
    </div> :
    
    JSON.stringify(LineData) === '{}' ?
    
    <div className="echart_nodata LineEcharts_nodata">
    
        <i className="iconfont iconzanwushuju echart_nodata_icon"></i>
        
        <p>{ formatMessage({id: 'common_noData'}) }</p>
        
    </div>
    
    :
    
    <div id='EchartsMain' ref={(EchartsRef)}></div>
    
</div> 

这是我写的代码,很简单,如果数据为null,就显示loading动画,如果没有数据就显示暂无数据,逻辑很简单,就是在切换Tab的时候暂无数据和Echarts同时出现了,很纳闷,为啥啊,打印了数据也没问题,后来看了看Echarts,发现Echarts的Dom没有清除掉,Echarts会附着在LineEcharts这个父元素上,导致Echarts没有清除掉,只要在 id='EchartsMain'的dom外面在套一层div就完美的解决问题了。在此记录一下,喜欢的记着点个赞哦。
正确代码↓

<div className='LineEcharts'>

    {
    
        !LineData ?
        
        <div className='loader_wrap'>
        
            <Spin />
            
        </div> :
        
        JSON.stringify(LineData) === '{}' ?
        
        <div className="echart_nodata LineEcharts_nodata">
        
            <i className="iconfont iconzanwushuju echart_nodata_icon"></i>
            
            <p>{ formatMessage({id: 'common_noData'}) }</p>
            
        </div>
        
        :
        
        <div>
        
            <div id='EchartsMain' ref={(EchartsRef)}></div>       
            
        </div>
        
    }
</div>




node小王子
0 声望1 粉丝

前端小学生一枚