gpt4 book ai didi

svelte - 如何在 Svelte/Sapper 中动态导入和渲染组件?

转载 作者:行者123 更新时间:2023-12-01 13:20:35 27 4
gpt4 key购买 nike

我有一个组件( IconInline.html ),我想在其中根据传递给它的 Prop ( IconID )动态导入和呈现组件。

目前我是这样手动操作的:

{{#if IconID === "A"}}
<A />
{{elseif IconID === "B"}}
<B />
{{elseif IconID === "C"}}
<C />
{{elseif IconID === "D"}}
<D />
{{/if}}

<script>
import A from "./icons/A.html";
import B from "./icons/B.html";
import C from "./icons/C.html";
import D from "./icons/D.html";

export default {
components: { A, B, C, D }
};
</script>


有没有办法
  • 动态导入给定目录中的所有组件?
  • 渲染与给定 Prop 匹配的特定组件?
  • 最佳答案

    无法导入给定目录中的所有组件,但您可以使用 <svelte:component> 渲染匹配特定 Prop 的组件。 :

    <svelte:component this={cmp} foo="bar" baz="bop">
    <!-- contents go here -->
    </svelte:component>

    <script>
    import A from "./icons/A.html";
    import B from "./icons/B.html";
    import C from "./icons/C.html";
    import D from "./icons/D.html";

    const components = { A, B, C, D };

    export default {
    computed: {
    cmp: ({ IconID }) => components[IconID]
    }
    };
    </script>

    IconID"A" ,这相当于

    <A foo="bar" baz="bop">
    <!-- contents go here -->
    </A>

    Docs here.

    关于svelte - 如何在 Svelte/Sapper 中动态导入和渲染组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50102627/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com