1、官方给的updateRows方法
如果想要不断追加行数据,又不想从头开始轮播,可以使用此方法更新行数据,不会导致从头轮播,也可以设置下次滚动的起始行。
<template>
<dv-scroll-board :config="config" ref="scrollBoard" />
</template>
<script>
export default {
data () {
return () {
config: {}
}
},
methods () {
doUpdate () {
this.$refs['scrollBoard'].updateRows(rows, index)
}
}
}
</script>
2、解决办法
由于datav官方没有给出轮播表updateRows方法的具体使用案例,折磨了很久查到一位大佬分享的代码,经过尝试已经成功解决轮播表数据更新的问题,updateRows具体使用方法如下:
我这里是通过websocket接收后台发来的数据,一定要先放入一个数组中,就像我下面的格式:先把数据写入一个data数组中,然后再用一个noticeData数组接收这个数据,这样直接把noticeData传给updateRows方法。
重点就是this.$refs['scrollBoard'].updateRows(this.noticeData),这个方法要传入的是符合官方给的数据格式,最开始我直接把一个数组放进去根本不行。
<div class="d-flex jc-center body-box">
<dv-scroll-board class="dv-scr-board" :config="config" ref="scrollBoard" />
</div>
websocket.subscribe('/pso/ws/production-event', (message) => {
var eventReceive = JSON.parse(message.data)
var data = ['<span style="color:#ffffff;font-size: 10px">' +
eventReceive.detail + '</span>']
this.noticeData.push(data)
this.$refs['scrollBoard'].updateRows(this.noticeData)
})
3、参考
下面是原大佬给的解答:
<dv-scroll-board :config="config" ref="scroll-board" />
export default {
doUpdate () {
const scrollBoard = this.$refs['scroll-board']
scrollBoard.updateRows(someRows)
}
}