求松滴萌帮帮忙
求松滴萌帮帮忙
  • 发布:2021-06-03 20:14
  • 更新:2021-06-03 22:00
  • 阅读:1374

离谱的bug uniapp 微信小程序 中使用echart(mpvueEcharts),在图表渲染后修改组件最外层标签的定位top报错!

分类:uni-app

因为要监听 scroll-view 滚动(echarts图表在scroll-view中),在修改最外层position: absolute; 的定位top时报错
报错信息:
vendor.js?t=wechat&s=1622704591384&v=036732ba2589f032744fcf566a87fc5f:7
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'n'
| property '_chartsViews' -> object with constructor 'Array'
| index 0 -> object with constructor 'n'
| ...
| property 'dom' -> object with constructor 't'
--- property 'chart' closes the circle
at JSON.stringify (<anonymous>)

<template>  
    <view class="home_content" :class="{'active':active}" :style="{height: height,top:homeTop}">  
        <scroll-view scroll-y :scroll-top="scrollTop" style="width: 100%;height: 100%;padding: 0 19rpx;box-sizing: border-box;"  
                     @scroll="scroll" @scrolltolower="scrolltolower" @scrolltoupper="scrolltoupper">  
                <view style="padding-bottom: 60rpx;">  
                    <view class="echart1">  
                        <view class="echart_top">2021年任务完成情况</view>  
                        <view class="echart1_box">  
                            <mpvue-echarts  @onInit="setEchart1Box" canvasId="demo-canvas1" ref="mpEchartsOne" />  
                        </view>  
                        <view class="echart2_box_all">  
                            <view class="echart2_box_all_z echart2_box_left">  
                                <mpvue-echarts  @onInit="setEchart2Box" canvasId="demo-canvas2" ref="mpEchartsTwo" />  
                            </view>  
                            <view class="echart2_box_all_z echart2_box_middle">  
                                <mpvue-echarts  @onInit="setEchart3Box" canvasId="demo-canvas3" ref="mpEchartsThree" />  
                            </view>  
                            <view class="echart2_box_all_z echart2_box_right">  
                                <mpvue-echarts  @onInit="setEchart4Box" canvasId="demo-canvas4" ref="mpEchartsFour" />  
                            </view>  
                        </view>  

                    </view>  
                    <view class="echart5">  
                        <view class="echart_top">2021年任务数量趋势</view>  
                        <view class="echart5_box">  
                            <mpvue-echarts  @onInit="setEchart5Box" canvasId="demo-canvas5" ref="mpEchartsFive" />  
                        </view>  
                    </view>  
                </view>  
        </scroll-view>  
    </view>  
</template>
2021-06-03 20:14 负责人:无 分享
已邀请:
求松滴萌帮帮忙

求松滴萌帮帮忙 (作者)

进一步测试bug 发现只要修改data(){return { }}中定义的值就报错

陌上华年

陌上华年

可以试试 这款https://ext.dcloud.net.cn/plugin?id=4899
另外关于canvas的使用限制可以看看微信官方的说法https://developers.weixin.qq.com/miniprogram/dev/component/native-component.html#%E5%8E%9F%E7%94%9F%E7%BB%84%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8%E9%99%90%E5%88%B6

  • 求松滴萌帮帮忙 (作者)

    谢谢

    2021-06-04 10:00

  • 求松滴萌帮帮忙 (作者)

    问题依然在而且比之前更严重 滑动的时候canvas漂浮,overflow: hidden;没用,之前的mq还不会漂浮

    2021-06-04 10:49

  • 求松滴萌帮帮忙 (作者)

    没办法页面就这样 又要position: absolute;还要css的动画效果,还要监听页面滚动 scroll-view,最不让人明白的是为啥会影响到页面渲染,一直报错TypeError: Converting circular structure to JSON

    2021-06-04 10:52

  • 陌上华年

    回复 求松滴萌帮帮忙: canvas漂浮有可能是父级的或父级的先祖有设置高度100%,而且这种现象只存在微信开发者工具,你可以使用真机预览。

    另外,你也可以使用非2d:在标签上加type=""


    <l-echart type=""/>

    2021-06-04 10:59

  • 求松滴萌帮帮忙 (作者)

    真机直接空白页报错。

    我这个小程序使用了自定义底部tab 自定义标题框,导致现在这个问题,感觉是兼容上的问题,TypeError: Converting circular structure to JSON这个报错一直都在直接影响页面渲染

    2021-06-04 11:13

  • 陌上华年

    回复 求松滴萌帮帮忙: canvas 2d是不支持真机调试的。这个问题是微信的问题。微信官方人员建议使用真机预览。

    2021-06-04 11:17

  • 求松滴萌帮帮忙 (作者)

    回复 陌上华年: 谢谢,您在使用中有出现过TypeError: Converting circular structure to JSON这个报错吗

    2021-06-04 11:29

  • 陌上华年

    回复 求松滴萌帮帮忙: 没有,你这是插件引起的?如果是插件引起的加一下Q群1046793420,我看一下

    2021-06-04 11:36

  • 求松滴萌帮帮忙 (作者)

    回复 陌上华年: 找到原因了 我在data中定义了一个 mpEcharts:{}, 然后this.mpEcharts[lEcharts] = echarts.init(canvas, null, config); 导致vue渲染data得时候深复刻报错

    2021-06-04 11:44

该问题目前已经被锁定, 无法添加新回复