From 35e1347029e29a83a9648b6b398e6863cc40fca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E6=9C=A8?= Date: Tue, 13 Jul 2021 18:04:42 +0800 Subject: [PATCH] fix(markdown): set `value` error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复markdown组件在完成初始化之前动态设置value可能导致异常的问题 --- src/components/Markdown/src/Markdown.vue | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/Markdown/src/Markdown.vue b/src/components/Markdown/src/Markdown.vue index 016cc4d0079..c7060a1b6aa 100644 --- a/src/components/Markdown/src/Markdown.vue +++ b/src/components/Markdown/src/Markdown.vue @@ -59,8 +59,8 @@ (v) => { if (v !== valueRef.value) { instance.getVditor()?.setValue(v); - valueRef.value = v; } + valueRef.value = v; } ); @@ -85,7 +85,7 @@ const wrapEl = unref(wrapRef) as HTMLElement; if (!wrapEl) return; const bindValue = { ...attrs, ...props }; - vditorRef.value = new Vditor(wrapEl, { + const insEditor = new Vditor(wrapEl, { theme: getDarkMode.value === 'dark' ? 'dark' : 'classic', lang: unref(getCurrentLang), mode: 'sv', @@ -100,7 +100,10 @@ after: () => { nextTick(() => { modalFn?.redoModalHeight?.(); + insEditor.setValue(valueRef.value); + vditorRef.value = insEditor; initedRef.value = true; + emit('get', instance); }); }, blur: () => { @@ -124,14 +127,10 @@ vditorInstance?.destroy?.(); } catch (error) {} vditorRef.value = null; + initedRef.value = false; } - onMountedOrActivated(() => { - nextTick(() => { - init(); - }); - emit('get', instance); - }); + onMountedOrActivated(init); onBeforeUnmount(destroy); onDeactivated(destroy);