DataV-Team / DataV

Vue数据可视化组件库(类似阿里DataV,大屏数据展示),提供SVG的边框及装饰、图表、水位图、飞线图等组件,简单易用,长期更新(React版已发布)
http://datav.jiaminghi.com
MIT License
9.09k stars 1.79k forks source link

轮播表在tabs切换的时候,隐藏tab页无法正常显示 #27

Closed Joycezhangw closed 5 years ago

Joycezhangw commented 5 years ago

Bug report

出现Bug的组件?

轮播表

组件配置数据?

rankItems: [ { header: ["姓名", "身份证号", "测试成绩", "国标分"], data: [ ["吴*", "-", "15.5", "100.00"], ["吴*", "3501****0142", "20.2", "100.00"], ["庄*", "3501****0100", "17.4", "100.00"], ["童*", "4209****1039", "15.5", "100.00"], ["关*", "2205****0204", "16.6", "95.00"], ["徐*", "3501****002X", "14.7", "94.00"], ["周*", "-", "12.4", "90.00"], ["蔡*", "3503****115x", "10.5", "90.00"], ["张*", "-", "8.4", "82.00"], ["荣*", "3501****0077", "8.1", "82.00"], ["陈*", "3504****3312", "6.6", "78.00"], ["吴*", "3501****0097", "6.7", "78.00"], ["阴*", "1101****9639", "5.7", "76.00"], ["李*", "3501****0422", "5.7", "75.00"], ["陆*", "3507****2513", "6.7", "70.00"] ], index: true, align: ["center"], columnWidth: [50, 120, 300, 60, 60], oddRowBGC: "rgba(9, 37, 50, 0.4)", evenRowBGC: "rgba(10, 32, 50, 0.3)" }, { header: ["姓名", "身份证号", "测试成绩", "国标分"], data: [ ["周*", "3501****0108", "38", "92.00"], ["禅*", "3501****0036", "40", "90.00"], ["陈*", "-", "39", "89.00"], ["陈*", "3501****0054", "46", "86.00"], ["童**", "4209****1039", "46", "86.00"], ["陈*", "3504****3312", "42", "82.00"], ["陆*", "3507****2513", "42", "82.00"], ["徐*", "3501****002X", "40", "70.00"], ["谢*", "6531****1623", "24", "69.00"], ["李*", "3501****0422", "38", "68.00"], ["陈*", "3501****0172", "40", "60.00"], ["阴*", "1101****9639", "40", "60.00"], ["蔡*", "3503****115x", "30", "60.00"], ["陈*", "3507****3024", "40", "60.00"], ["林*", "3501****005X", "44", "55.00"] ], index: true, align: ["center"], columnWidth: [50, 120, 300, 60, 60], oddRowBGC: "rgba(9, 37, 50, 0.4)", evenRowBGC: "rgba(10, 32, 50, 0.3)" } ]

控制台错误输出?

期望情况?

在切换tabs的时候,轮播情况应该是一样的。而不是当前显示的tab页轮播正常

实际情况?

在初次加载页面的时候,当前显示的tab页的轮播表是正常显示,但是其他隐藏的tab页就是乱的,而且,随着轮播完就不没有了。内容里面height是0

其他相关信息

jiaming743 commented 5 years ago

轮播表高度设置依赖外部容器宽高,所以会导致隐藏的轮播表高度为0,建议这种情况,可以复用同一个轮播表组件,切换tab的时候,同时切换轮播表的配置数据,这样就不会导致切换后高度异常。而且,随着轮播完就不没有了。这个是什么意思?

Joycezhangw commented 5 years ago

轮播表高度设置依赖外部容器宽高,所以会导致隐藏的轮播表高度为0,建议这种情况,可以复用同一个轮播表组件,切换tab的时候,同时切换轮播表的配置数据,这样就不会导致切换后高度异常。而且,随着轮播完就不没有了。这个是什么意思?

您说的方法确实可以解决问题。那句话就是您说的,因为高度异常,在切换新的tab的时候,数据存在的时候是可以看到乱的数据,但在轮播的时候,数据轮播完就,就看不到轮播了,就是因为高度失效的问题。还有请问下,轮播组件的时候,使用ajax请求数据的时候,能在devtool查看到数据,但并没有渲染到页面。只有将数据直接写在data里面,页面就能正常显示数据轮播了。 2

jiaming743 commented 5 years ago

因为Props未被设置为深度监听 如果你只是更改props的属性 而非全替换更新 那组件是无法侦知数据变化 从而响应的 文档上有提到

Joycezhangw commented 5 years ago

因为Props未被设置为深度监听 如果你只是更改props的属性 而非全替换更新 那组件是无法侦知数据变化 从而响应的 文档上有提到

谢谢