首页 > 电脑专区 > windows >

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

来源:互联网 2023-02-20 17:57:22 355

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

工具/原料

  • MUI框架
  • HBuilderX

方法/步骤

  • 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 2

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

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

  • 3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 进一步优化

  • 1

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

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

  • 注意事项

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

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


    标签: 操作系统APP无法

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