Vue 3 - Svgator播放器始終為undefined。
<p>目前,我使用SVGator製作了SVG動畫。 <br />我將其作為資源導入到我的應用程式中,並嘗試讓它運行。 </p><p>我按照這份文件的說明成功實現了它的運作。 </p><p>但是,由於我可能需要創建大量的動畫,我嘗試將其更加通用。 </p><p><br /></p>
<pre class="brush:js;toolbar:false;"><script setup lang="ts">
import { ref, defineComponent, h, component, watch } from 'vue';
import exampleSvg from '@assets/example.svg?raw';
interface IComponentProperties {
svg: string;
}
const componentProperties = withDefaults(defineProps<IComponentProperties>(), {
svg: () => exampleSvg,
});
const element = ref<HTMLElement>();
const animatedSvg = defineComponent({
render() {
return h('svg', { innerHTML: componentProperties.svg, ref: element });
},
});
function runAnimation() {
if (!element.value) return;
const { firstChild } = element.value;
const svg = firstChild as any;
svg?.svgatorPlayer?.play();
}
watch(
() => element.value,
() => {
runAnimation();
},
{
immediate: true,
}
);
</script>
<template>
<Component :is="animatedSvg" />
</template>
</pre>
<p>這是一個完整的Vue應用程序,包含相同的程式碼。 </p><p>為什麼svg?.svgatorPlayer總是null? </p><p><strong></strong></p>