我对ucharts图标使用此方法
<template>
<view class="ceshi">
<view :class="`charts-box charts-box${myID}`" :id="myID">
<qiun-data-charts type="mix" :opts="opts" :chartData="chartData" :canvas2d="true" :onmouse="false"
:animation='true' :tooltipShow='true' @error='errorU' loadingType="0" @complete="complete" />
</view>
</view>
</template>
<script>
let observer = null;
import {
UformatTime
} from '@/utils/util/index.js'
export default {
props: {
myID: {
type: Number,
default: 0
}
},
data() {
return {
};
},
mounted() {
observer = uni.createIntersectionObserver(this);
observer.relativeTo('.scroll-Y').observe(`.charts-box${this.myID}`, (res) => {
if (res.intersectionRatio > 0) {
this.getServerData();
}
console.log(`observe: .charts-box${this.myID}`, res)
//
})
},
onUnload() {
if (observer) {
observer.disconnect()
}
},
methods: {
complete(){
console.log(`${this.myID}已生成`)
this.$nextTick(()=> {
console.log('111')
observer.disconnect()
})
},
errorU(e) {
},
}
};
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.ceshi {
min-height: 1px;
width: 100%;
height: 100%;
}
.charts-box {
min-height: 1px;
width: 100%;
height: 100%;
/* border: 1px solid red; */
}
</style>
无报错但是,每次循环最底部的数据无法触发导致每个循环有一个图渲染不出来
3 个回复
1***@qq.com (作者) - 11
我发现是在
这里不去注销 observer.disconnect() 事件就可以触发了,但是没有触发 这是因为什么原因呢, complete没有提前触发的情况
1***@qq.com (作者) - 11
官方会回我么。
5***@qq.com
有解决吗??确实存在多个元素 循环监听 失效的情况。