Quantcast
Channel: Active questions tagged svelte - Stack Overflow
Viewing all articles
Browse latest Browse all 1541

Events emitted from slotted components

$
0
0

I try to wrap an application into a 'Repository' component and that outer component should handle all communication with the backend, like loading, updating, deleting editable data. I thought I could just send events up to that Repository component but I doesn't work the way I do it. Does anyone spot the issue or can explain, why this doesn't work and how to do it correctly with events? I could use writables instead but events would make it more readable. Here's a simplified example and a svelte REPL link:

https://svelte.dev/repl/e1eae56c7d5e48b2a99299f1bc1bf970?version=3.22.3

App.svelte:

<script>    import Repository from './Repository.svelte'    import Application from './Application.svelte'</script><Repository><Application on:save={() => console.log('caught in App')} /></Repository>

Repository.svelte:

<div on:save={() => console.log('caught in Repository')}><slot></slot></div>

Application.svelte:

<script>    import {createEventDispatcher} from 'svelte'    const dispatch = createEventDispatcher();    function saveHandler() {        console.log('dispatching')        dispatch('save')    }</script><button on:click={saveHandler}>    Save</button>

The desired output would be

dispatchingcaught in Repository

but it only prints

dispatchingcaught in App

when the button is clicked.


Viewing all articles
Browse latest Browse all 1541

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>