Commit 35e1347029e29a83a9648b6b398e6863cc40fca9

Authored by 无木
1 parent d95815b5

fix(markdown): set `value` error

修复markdown组件在完成初始化之前动态设置value可能导致异常的问题
src/components/Markdown/src/Markdown.vue
@@ -59,8 +59,8 @@ @@ -59,8 +59,8 @@
59 (v) => { 59 (v) => {
60 if (v !== valueRef.value) { 60 if (v !== valueRef.value) {
61 instance.getVditor()?.setValue(v); 61 instance.getVditor()?.setValue(v);
62 - valueRef.value = v;  
63 } 62 }
  63 + valueRef.value = v;
64 } 64 }
65 ); 65 );
66 66
@@ -85,7 +85,7 @@ @@ -85,7 +85,7 @@
85 const wrapEl = unref(wrapRef) as HTMLElement; 85 const wrapEl = unref(wrapRef) as HTMLElement;
86 if (!wrapEl) return; 86 if (!wrapEl) return;
87 const bindValue = { ...attrs, ...props }; 87 const bindValue = { ...attrs, ...props };
88 - vditorRef.value = new Vditor(wrapEl, { 88 + const insEditor = new Vditor(wrapEl, {
89 theme: getDarkMode.value === 'dark' ? 'dark' : 'classic', 89 theme: getDarkMode.value === 'dark' ? 'dark' : 'classic',
90 lang: unref(getCurrentLang), 90 lang: unref(getCurrentLang),
91 mode: 'sv', 91 mode: 'sv',
@@ -100,7 +100,10 @@ @@ -100,7 +100,10 @@
100 after: () => { 100 after: () => {
101 nextTick(() => { 101 nextTick(() => {
102 modalFn?.redoModalHeight?.(); 102 modalFn?.redoModalHeight?.();
  103 + insEditor.setValue(valueRef.value);
  104 + vditorRef.value = insEditor;
103 initedRef.value = true; 105 initedRef.value = true;
  106 + emit('get', instance);
104 }); 107 });
105 }, 108 },
106 blur: () => { 109 blur: () => {
@@ -124,14 +127,10 @@ @@ -124,14 +127,10 @@
124 vditorInstance?.destroy?.(); 127 vditorInstance?.destroy?.();
125 } catch (error) {} 128 } catch (error) {}
126 vditorRef.value = null; 129 vditorRef.value = null;
  130 + initedRef.value = false;
127 } 131 }
128 132
129 - onMountedOrActivated(() => {  
130 - nextTick(() => {  
131 - init();  
132 - });  
133 - emit('get', instance);  
134 - }); 133 + onMountedOrActivated(init);
135 134
136 onBeforeUnmount(destroy); 135 onBeforeUnmount(destroy);
137 onDeactivated(destroy); 136 onDeactivated(destroy);