【发布时间】:2020-09-01 23:45:15
【问题描述】:
我会尽量简短。 我有主要组件 app.svelte。在其中,我使用了一个名为 Course.svelte 的子组件。我正在使用 {#each} 块多次重复相同的组件。问题是我希望 app.svelte 在单个组件打开时知道:单击。 现在我正在处理 Course.svelte 组件中的 on:click 事件。像这样,App.svelte 永远不会知道它。 我该怎么办?
Course.svelte 的 sn-p 以及我如何处理 on:click 事件:
<script>
function handleClick() {
if (state == courseStates.CLOSED) {
//Handle closed course
} else {
if (state === courseStates.READY) {
passCourse();
} else if (state === courseStates.PASS) {
failCourse();
}
}
}
function passCourse() {
state = courseStates.PASS;
}
function failCourse() {
state = courseStates.READY;
}
</script>
<div on:click={handleClick} class="text-center course btn {buttonClass}">
<h1>{name}</h1>
<h4>{code} - {credit} Credit Hours - Term {term}</h4>
</div>
App.svelte 的 sn-p,我想通过单击课程来维护每门课程的状态,因为它随着时间的推移而变化:
<div class="row">
{#each courses as course}
{#if course.term == term}
<Course
state={course.state}
name={course.name}
credit={course.credit}
term={course.term}
code={course.code}
on:removecourse={removeCourse} />
{/if}
{/each}
</div>
【问题讨论】:
标签: javascript svelte svelte-3 svelte-component