gpt4 book ai didi

Svelte:使用父组件的功能

转载 作者:行者123 更新时间:2023-12-01 23:20:44 26 4
gpt4 key购买 nike

在我的 App.svelte 中,我的函数包含以下代码:

<script>
import Categories from "./Categories.svelte";

let choice = { category: false };

export function toggle() {
choice.category = !choice.category;
}
</script>

{#if choice.category}
<Categories />
{:else}
<p>Foo.</p>
{/if}

在我的类别组件中,我有以下代码:

<button id="vegetation" on:click="toggle()">
<span>Analyse vegetation and forestry</span>
</button>

我想要的是:当我点击类别组件中的按钮时,应该调用 toggle() 函数。

我该怎么做?

最佳答案

有两种方式:

使用事件

在这种情况下,您的组件会引发一个事件,父组件会对此作出 react :

<!-- Parent.svelte -->
<script>
function something() { }
</script>

<Child on:toggle={something} />
<!-- Child.svelte -->
<script>
import { createEventDispatcher } from 'svelte'
const dispatch = createEventDispatcher()

function toggle() {
dispatch('toggle')
}
</script>

<button on:click={toggle}>click me</button>

阅读 docs 中的事件

传递函数

另一种方法是将函数作为 prop 传递。

<!-- Parent.svelte -->
<script>
function parentToggle() { }
</script>
<Child toggle={parentToggle} />
<!-- Child.svelte -->
<script>
export let toggle = () => {} // no-operation function
</script>
<button on:click={toggle}>Click me</button>

关于Svelte:使用父组件的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68134909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com