2

我正在构建一个侧边栏组件,该组件在单击侧边栏项目之一时更新活动链接。因此,我需要向下传递当前的侧边栏项目对象以启用其活动状态。

问题:如何在 on:click 事件后将值传递给回调?这是我在常规 javascript 上的操作方式:

<script>
  const items = [
    {
      text: "Home",
      url: "/"
    },
    {
      text: "Workarea",
      url: "/workarea"
    },
    {
      text: "Notes",
      url: "/notes"
    },
    {
      text: "Conf",
      url: "/conf"
    }
  ];

function click(obj,e) {
  e.preventDefault()
  var activeItem = obj.id
}
</script>

//HTML

<div class="card" style="width: 18rem;">
  <ul class="list-group list-group-flush">
    {#each items as item}
        <li class="list-group-item">
            <a 
            on:click={onItemClick}
            href={item.url}
            >{item.text}</a>
        </li>
    {/each}
  </ul>
</div> 

我检查了 API 并尝试使用bind:xxxx指令但没有成功。

我希望代码能够在单击后更新当前活动的侧边栏项目。

4

1 回答 1

4

您需要将 传递item给您的处理程序:

<div class="card" style="width: 18rem;">
  <ul class="list-group list-group-flush">
    {#each items as item}
      <li class="list-group-item">
        <a 
          on:click={() => onItemClick(item)}
          href={item.url}
        >{item.text}</a>
      </li>
    {/each}
  </ul>
</div> 
于 2019-04-29T15:41:49.997 回答