首页 > 电脑专区 > 电脑教程 >

mui结合echarts出现echarts图像无法显示的问题

来源:互联网 2023-02-21 19:36:07 290

MUI是一个用于前端的框架,由DCLOUD开发,MUI提供了大量的组件供开发人员使用,极大的提高了开发的效率和速度,本次解决在开发环境中遇到MUI框架在使用子页面打开时出现echarts图形无法渲染的情况.sLB办公区 - 实用经验教程分享!

工具/原料

  • MUI框架
  • HBuilderX

方法/步骤

  • 1

    使用MUI前端模版创建一个包含子页面的底部Tab样式页面,如下代码为模版自动生成,只需添加自定义的几个页面'home.html', 'blog.html', 'my.html'.sLB办公区 - 实用经验教程分享!

    //mui初始化sLB办公区 - 实用经验教程分享!

    mui.init();sLB办公区 - 实用经验教程分享!

    var subpages = ['home.html', 'blog.html', 'my.html'];sLB办公区 - 实用经验教程分享!

    var subpage_style = {sLB办公区 - 实用经验教程分享!

    top: '0',sLB办公区 - 实用经验教程分享!

    bottom: '51px'sLB办公区 - 实用经验教程分享!

    };sLB办公区 - 实用经验教程分享!

    var aniShow = {};sLB办公区 - 实用经验教程分享!

    //创建子页面,首个选项卡页面显示,其它均隐藏;sLB办公区 - 实用经验教程分享!

    mui.plusReady(function() {sLB办公区 - 实用经验教程分享!

    var self = plus.webview.currentWebview();sLB办公区 - 实用经验教程分享!

    for (var i = 0; i subpages.length; i ) {sLB办公区 - 实用经验教程分享!

    var temp = {};sLB办公区 - 实用经验教程分享!

    var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);sLB办公区 - 实用经验教程分享!

    if (i > 0) {sLB办公区 - 实用经验教程分享!

    sub.hide();sLB办公区 - 实用经验教程分享!

    }else{sLB办公区 - 实用经验教程分享!

    temp[subpages[i]] = "true";sLB办公区 - 实用经验教程分享!

    mui.extend(aniShow,temp);sLB办公区 - 实用经验教程分享!

    }sLB办公区 - 实用经验教程分享!

    self.append(sub);sLB办公区 - 实用经验教程分享!

    }sLB办公区 - 实用经验教程分享!

    });sLB办公区 - 实用经验教程分享!

    //当前激活选项sLB办公区 - 实用经验教程分享!

    var activeTab = subpages[0];sLB办公区 - 实用经验教程分享!

    //选项卡点击事件sLB办公区 - 实用经验教程分享!

    mui('.mui-bar-tab').on('tap', 'a', function(e) {sLB办公区 - 实用经验教程分享!

    var targetTab = this.getAttribute('href');sLB办公区 - 实用经验教程分享!

    if (targetTab == activeTab) {sLB办公区 - 实用经验教程分享!

    return;sLB办公区 - 实用经验教程分享!

    }sLB办公区 - 实用经验教程分享!

    //更换标题sLB办公区 - 实用经验教程分享!

    // title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;sLB办公区 - 实用经验教程分享!

    //显示目标选项卡sLB办公区 - 实用经验教程分享!

    //若为iOS平台或非首次显示,则直接显示sLB办公区 - 实用经验教程分享!

    if(mui.os.ios||aniShow[targetTab]){sLB办公区 - 实用经验教程分享!

    plus.webview.show(targetTab);sLB办公区 - 实用经验教程分享!

    }else{sLB办公区 - 实用经验教程分享!

    var temp = {};sLB办公区 - 实用经验教程分享!

    temp[targetTab] = "true";sLB办公区 - 实用经验教程分享!

    mui.extend(aniShow,temp);sLB办公区 - 实用经验教程分享!

    plus.webview.show(targetTab,"fade-in",300);sLB办公区 - 实用经验教程分享!

    }sLB办公区 - 实用经验教程分享!

    //隐藏当前;sLB办公区 - 实用经验教程分享!

    plus.webview.hide(activeTab);sLB办公区 - 实用经验教程分享!

    //更改当前活跃的选项卡sLB办公区 - 实用经验教程分享!

    activeTab = targetTab;sLB办公区 - 实用经验教程分享!

    sLB办公区 - 实用经验教程分享!

    });sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

  • 2

    在blog.html页面创建一个echarts图形,但在此模式下点击底部tab是无法正常渲染出效果来的sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

  • 3

    echarts的代码如下:sLB办公区 - 实用经验教程分享!

    var chart = echarts.init(document.getElementById('bar'));sLB办公区 - 实用经验教程分享!

    option = {sLB办公区 - 实用经验教程分享!

    xAxis: {sLB办公区 - 实用经验教程分享!

    type: 'category',sLB办公区 - 实用经验教程分享!

    boundaryGap: false,sLB办公区 - 实用经验教程分享!

    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']sLB办公区 - 实用经验教程分享!

    },sLB办公区 - 实用经验教程分享!

    yAxis: {sLB办公区 - 实用经验教程分享!

    type: 'value'sLB办公区 - 实用经验教程分享!

    },sLB办公区 - 实用经验教程分享!

    series: [{sLB办公区 - 实用经验教程分享!

    data: [820, 932, 901, 934, 1290, 1330, 1320],sLB办公区 - 实用经验教程分享!

    type: 'line',sLB办公区 - 实用经验教程分享!

    areaStyle: {}sLB办公区 - 实用经验教程分享!

    }]sLB办公区 - 实用经验教程分享!

    };sLB办公区 - 实用经验教程分享!

    chart.setOption(option, true);sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

  • 4

    解决这个问题,本次解决的方法是在当前的页面添加一个监控事件,当触发此事件时才渲染,就不会出现无法显示的问题了,具体代码如下:sLB办公区 - 实用经验教程分享!

    mui.init();sLB办公区 - 实用经验教程分享!

    sLB办公区 - 实用经验教程分享!

    mui.plusReady(function(){sLB办公区 - 实用经验教程分享!

    var foo = function(){sLB办公区 - 实用经验教程分享!

    var chart = echarts.init(document.getElementById('bar'));sLB办公区 - 实用经验教程分享!

    option = {sLB办公区 - 实用经验教程分享!

    xAxis: {sLB办公区 - 实用经验教程分享!

    type: 'category',sLB办公区 - 实用经验教程分享!

    boundaryGap: false,sLB办公区 - 实用经验教程分享!

    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']sLB办公区 - 实用经验教程分享!

    },sLB办公区 - 实用经验教程分享!

    yAxis: {sLB办公区 - 实用经验教程分享!

    type: 'value'sLB办公区 - 实用经验教程分享!

    },sLB办公区 - 实用经验教程分享!

    series: [{sLB办公区 - 实用经验教程分享!

    data: [820, 932, 901, 934, 1290, 1330, 1320],sLB办公区 - 实用经验教程分享!

    type: 'line',sLB办公区 - 实用经验教程分享!

    areaStyle: {}sLB办公区 - 实用经验教程分享!

    }]sLB办公区 - 实用经验教程分享!

    };sLB办公区 - 实用经验教程分享!

    chart.setOption(option, true);sLB办公区 - 实用经验教程分享!

    }sLB办公区 - 实用经验教程分享!

    var flag = true;sLB办公区 - 实用经验教程分享!

    var self = plus.webview.currentWebview();sLB办公区 - 实用经验教程分享!

    self.addEventListener('show',function(){sLB办公区 - 实用经验教程分享!

    if(flag){sLB办公区 - 实用经验教程分享!

    foo();sLB办公区 - 实用经验教程分享!

    flag = false;sLB办公区 - 实用经验教程分享!

    }sLB办公区 - 实用经验教程分享!

    sLB办公区 - 实用经验教程分享!

    });sLB办公区 - 实用经验教程分享!

    });sLB办公区 - 实用经验教程分享!

    sLB办公区 - 实用经验教程分享!

    需要先创建一个方法,并在监听事件中执行这个方法才生效sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

  • 4本页面未经许可获取自百度经验
  • 5

    再次退出APP,重新打开,并点击底部tab,可以发现可正常显示图形sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

  • 进一步优化

  • 1

    此方法会在每次点击底部tab后去刷新图表,如果数据为ajax请求,就会每次点击都会去请求一次,这样很没必要,可添加一个标志位来判断是否为第一次点击,否则就不会触发再次渲染sLB办公区 - 实用经验教程分享!

    mui结合echarts出现echarts图像无法显示的问题sLB办公区 - 实用经验教程分享!

  • 注意事项

    • 如果你有更好的方法,烦请告知,互相学习

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!sLB办公区 - 实用经验教程分享!


    标签: 操作系统APP无法

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码