У меня есть <svelte:component>
в моем родительском компоненте, который позволяет мне переключаться между несколькими дочерними компонентами. Я хочу вызвать функцию внутри одного из дочерних компонентов. Для этого у меня есть функция в родительском компоненте, которая сначала пытается переключиться на этот дочерний компонент, а затем вызывает функцию.
App.svelte
<script>
import First from './First.svelte'
import Second from './Second.svelte'
let selected = First;
let child;
function secondHello() {
selected = Second;
child.hello();
}
</script>
...
<svelte:component this={selected} bind:this={child}/>
Второй.
<script>
export function hello() {
//do stuff
}
</script>
REPL: https://svelte.dev/repl/93214917d7414741a229cd812Space / а>
Проблема в том, что когда текущий выбранный компонент не Second
, функция secondHello
не работает. Похоже, что для обновления child
после изменения selected
требуется некоторое время, в результате чего child.hello();
выдает ошибку, поскольку она не существует в другом дочернем компоненте.
Есть ли способ дождаться обновления child
? Или мне следует использовать другой подход?