【问题标题】:How to load multiple svelte components dynamically?如何动态加载多个苗条组件?
【发布时间】:2020-04-10 05:41:48
【问题描述】:

我有一个用于Address 的精简组件,用户可以通过单击按钮添加多个收件人(主要、次要、其他等)。我不知道用户会添加多少地址。我正在努力用 Svelte 建模。我找到的最接近的东西是svelte:component,但它一次只允许加载一个组件。

【问题讨论】:

    标签: svelte svelte-3


    【解决方案1】:

    您可以将所有地址保存在一个数组中,并为该数组中的每个元素呈现一个Address 组件,并使用例如更新元素来更新元素。从组件发出的事件。

    示例 (REPL)

    <!-- App.svelte -->
    <script>
      import Address from './Address.svelte';
      let addresses = [''];
    
      function addAddress() {
        addresses = [...addresses, ''];
      }
    
      function changeAddress(address, index) {
        addresses = addresses.map((a, i) => (i === index ? address : a));
      }
    </script>
    
    {#each addresses as address, index}
      <Address value="{address}" on:change="{e => changeAddress(e.target.value, index)}" />
    {/each}
    
    <button on:click="{addAddress}">Add address</button>
    
    <!-- Address.svelte -->
    <script>
      export let value = '';
    </script>
    
    <div>
      <input {value} on:change />
    </div>
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 2020-04-17
      • 2021-07-28
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多