svelte - Svelte:组件上下文
问题描述
我创建了一个自定义下拉组件。我在同一页面上有多个实例,如下所示:
label : <Select>
label : <Select>
label : <Select>
每当我点击组件时,第一个只会打开。我怎样才能解决这个问题?谢谢你。
// 选择.svelte
<div class="dropdown">
<slot></slot>
</div>
SelectItem.svelte
<Select>
content
</Select>
items.svelte
{#each items as item}
<item />
{/each}
item.svelte
<SelectItem/>
解决方案
理想情况下,你会有这样的东西
<script>
//App.svelte
import Select from "./Select.svelte"
let options = [
{label:"State 1", id:1},
{label:"State 2", id:2}
]
let country = [
{label:"Country 1", id:1},
{label:"Country 2", id:2}
]
</script>
<Select options={options}/>
<Select options={country} />
<script>
//Select.svelte
export let options = []
</script>
<select>
{#each options as option}
<option>{option.label}</option>
{/each}
</select>
检查REPL
推荐阅读
- azure-data-explorer - 如何在 KUSTO 上添加百分比符号
- c# - .net 核心和角度启用 ssr
- snakemake - 以通配符特定的方式使用snakemake的本地规则
- javascript - 在 Javascript 数组中找不到对象属性
- java - 使用 BinarySearch 查找元素的第一次和最后一次出现
- node.js - 使用 typeorm 在 oracle 过程中绑定 In 和 Out 参数
- java - java ssh 连接被拒绝
- aws-lambda - AWS Eventbridge 拒绝 cron
- python - 像教程中一样在 Pandas 中读取 csv 数据
- c# - 如何强制 ASP.NET Web 应用程序使用 BIN 文件夹中的 Oracle DLL?