Как мне сослаться на родительский компонент компонента Svelte?

В документации Svelte по Props я использую props, чтобы передать ссылку на родительский компонент дочернему элементу.

Упражнения, сокращенно от "свойства", являются средством передачи данных от родительского к дочернему компоненту.

Это именно то, что я хочу сделать. Вот Svelte REPL с моим кодом, который также скопирован ниже:

Мой родитель App.html:

<div class='widget-container'>
    <Widget foo bar="static" {baz}/>
</div>

<script>
    import Widget from './Widget.html';

    export default {
        data: function(){ 
            return {
                baz: 'click me and check the console'
            }
        },
        components: {
            Widget
        }
    };
</script>

Дочерний компонент - Widget.html:

<p>foo: {foo}</p>
<p>bar: {bar}</p>
<p>baz: {baz}</p>

<script>
    export default {
        oncreate: function(){
            window.document.body.addEventListener('click', function(event){
                console.log(`Clicked!, ${baz}`)
            });
        }
    }

</script>   

Благодаря реквизитам, HTML <p> элементы могут четко ссылаться на родителя. Однако как я могу ссылаться на значения в родительском компоненте в JavaScript дочернего компонента?

1 ответ

Хуки и методы внутри жизненного цикла, состояние доступа с this.get():

<p>foo: {foo}</p>
<p>bar: {bar}</p>
<p>baz: {baz}</p>

<script>
    export default {
        oncreate: function(){
            window.document.body.addEventListener('click', () => {
                const { baz } = this.get();
                console.log(`Clicked!, ${baz}`)
            });
        }
    }l
</script> 
Другие вопросы по тегам