Commit 3a1ec7ac86d150791fe2472477be70fc456a78cd

Authored by Lantz
Committed by GitHub
1 parent 4c63b1ab

fix(hooks): 修改在使用useEcharts时, getInstance无法获取到最新的echarts实例的问题 (#2650)

Showing 1 changed file with 18 additions and 15 deletions
src/hooks/web/useECharts.ts
... ... @@ -60,23 +60,26 @@ export function useECharts(
60 60  
61 61 function setOptions(options: EChartsOption, clear = true) {
62 62 cacheOptions.value = options;
63   - if (unref(elRef)?.offsetHeight === 0) {
64   - useTimeoutFn(() => {
65   - setOptions(unref(getOptions));
66   - }, 30);
67   - return;
68   - }
69   - nextTick(() => {
70   - useTimeoutFn(() => {
71   - if (!chartInstance) {
72   - initCharts(getDarkMode.value as 'default');
  63 + return new Promise((resolve) => {
  64 + if (unref(elRef)?.offsetHeight === 0) {
  65 + useTimeoutFn(() => {
  66 + setOptions(unref(getOptions));
  67 + resolve(null);
  68 + }, 30);
  69 + }
  70 + nextTick(() => {
  71 + useTimeoutFn(() => {
  72 + if (!chartInstance) {
  73 + initCharts(getDarkMode.value as 'default');
73 74  
74   - if (!chartInstance) return;
75   - }
76   - clear && chartInstance?.clear();
  75 + if (!chartInstance) return;
  76 + }
  77 + clear && chartInstance?.clear();
77 78  
78   - chartInstance?.setOption(unref(getOptions));
79   - }, 30);
  79 + chartInstance?.setOption(unref(getOptions));
  80 + resolve(null);
  81 + }, 30);
  82 + });
80 83 });
81 84 }
82 85  
... ...