我有3个苗条的组件。 Comp应用程序,它导入Comp一和Comp二。两个如何在一个中调用函数?

时间:2019-10-26 08:17:27

标签: svelte svelte-component

我有3个苗条的组成部分。 Comp应用程序,它导入Comp一和Comp二。两个如何在一个中调用函数?

1 个答案:

答案 0 :(得分:1)

您可以从Comp1导出一个在App中得到引用的函数,然后向下传递给Comp2作为道具。

示例(REPL

<!-- Comp1.svelte -->
<script>
  export function foo() {
    alert('function in Comp1');
  }
</script>

<!-- Comp2.svelte -->
<script>
  export let onClick;
</script>

<button on:click="{onClick}">
  Click me
</button>

<!-- App.svelte -->
<script>
  import Comp1 from './Comp1.svelte';
  import Comp2 from './Comp2.svelte';

  let comp1;
</script>

<Comp1 bind:this="{comp1}" />
<Comp2 onClick="{() => comp1.foo()}" />