bug记录:接口异步获取更新数据后,echarts视图没有更新,在下次打开页面后才更新视图。

echarts视图更新是 setOption方法,vue3需要我们在onMounted生命周期和更新(watch)时使用。如果没有视图,查看这两步是否有触发。有视图但是没有更新视图,是 watch 里的setOption没有触发。查看 watch 是否监听到所要更新的数据。因为我是只更新一部分数据,所以开启deep深度监听数据变化。

<template>
  <div ref="main" :style="{'height':height,'width': width}" />
</template>

<script lang="ts" setup>
import { ref, watch } from 'vue';
//  按需引入 echarts
import * as echarts from 'echarts';

const main = ref(); // 使用ref创建虚拟DOM引用,使用时用main.value
const props = defineProps<any>();

onMounted(
  () => {
    init();
  },
);
const init = () => {
  // 基于准备好的dom,初始化echarts实例
  const myChart = echarts.init(main.value);
  // 指定图表的配置项和数据
  const options:any = props.option;
  // 使用刚指定的配置项和数据显示图表。
  myChart.setOption(options, true);
};
watch(() => props.option, (newVal, oldVal) => {
  init();
}, { deep: true });
</script>
<style scoped>
</style>

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐