Load fallback component if main component does not exits #13058
Unanswered
opuu
asked this question in
Help/Questions
Replies: 2 comments
-
Found a way to get rid of the error, but still interested if there is any better way. <template>
<component :is="footerComponent" />
</template>
<script lang="ts" setup>
const modules = import.meta.glob("@wtp/MainFooter.vue");
const footerComponent = shallowRef();
if (modules["@wtp/MainFooter.vue"]) {
// @ts-ignore
footerComponent.value = defineAsyncComponent(() => modules["@wtp/MainFooter.vue"]());
} else {
footerComponent.value = defineAsyncComponent(() => import("./FallbackFooter.vue"));
}
</script> |
Beta Was this translation helpful? Give feedback.
0 replies
-
You can simplify this by using the <template>
<MainFooter></MainFooter>
</template>
<script lang="ts" setup>
import { defineAsyncComponent } from 'vue';
const modules = import.meta.glob('@wtp/MainFooter.vue');
const MainFooter = defineAsyncComponent({
loader: (): any => modules['@wtp/MainFooter.vue']?.() || Promise.reject(),
errorComponent: () => 'error',
});
</script> |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The MainFooter might not exist in the themes folder, in that case we are loading fallback component.
Here is what I came up with:
This works but gives the following error on website:
Any better ways to do this?
Beta Was this translation helpful? Give feedback.
All reactions