Gh0*_*05d 1 javascript events event-handling svelte
我的应用程序的结构如下:
在子组件中,我想将数据传递给祖父母,具体取决于用户单击的结果。我尝试使用事件调度程序来执行此操作。不幸的是,这失败了,因为似乎沟通只能在父母和孩子之间进行。有办法做到这一点吗?
这是我的(简化的)代码:
// Grandparent
<form on:submit|preventDefault={handleSubmit}>
<Search bind:item={item} on:result={e => console.log(e)} />
</form>
// Parent
<div class="search-results">
<Response data={res} />
</div>
// Child
<script>
function returnData(data) {
dispatch("result", data);
}
</script>
<button on:click={() => returnData(data)}>Click</button>
Run Code Online (Sandbox Code Playgroud)
on:<eventName>之后您可以在不使用任何事件处理程序的情况下使用冒泡事件:
// Grandparent
<form on:submit|preventDefault={handleSubmit}>
<Search bind:item={item} on:result={e => console.log(e)} />
</form>
// Parent
<div class="search-results">
<!-- only this line changes in your code:
bubble the result event -->
<Response data={res} on:result />
</div>
// Child
<script>
function returnData(data) {
dispatch("result", data);
}
</script>
<button on:click={() => returnData(data)}>Click</button>
Run Code Online (Sandbox Code Playgroud)