gpt4 book ai didi

javascript - Svelte 条件元素类报告为语法错误

转载 作者:行者123 更新时间:2023-11-30 07:07:16 26 4
gpt4 key购买 nike

我正在根据 Svelte Guide for if blocks 创建一个 if block .看起来很简单,但 Svelte 认为这是一个语法错误:

[!] (svelte plugin) ParseError: Unexpected character '#'
public\js\templates\works.html
3: <div class="slides js_slides">
4: {#each works as work, index}
5: <div class="js_slide {#if index === currentIndex }selected{/if} {#if index === 0 }first{/if}">
^
6: <img src="/images/work/screenshots/{ works[index].slug }-0.{ works[index].imageExtension }"/>
7: </div>

为什么 {#if index === currentIndex } 被认为是无效的?如何在 Svelte 中进行条件判断?

我无法为每个可能的结果 创建单独的 class= block ,但这是一项大量的工作。

最佳答案

block ({#if...{#each... 等)不能在属性内部使用——它们只能定义标记的结构。

相反,惯例是使用三元表达式...

<div class="
js_slide
{index === currentIndex ? 'selected' : ''}
{index === 0 ? 'first' : ''}
">
<img src="/images/work/screenshots/{ works[index].slug }-0.{ works[index].imageExtension }"/>
</div>

...或使用助手:

<!-- language: lang-html -->

<div class="js_slide {getClass(work, index, currentIndex)}">
<img src="/images/work/screenshots/{ works[index].slug }-0.{ works[index].imageExtension }"/>
</div>

有些人喜欢做类似 data-selected={index === currentIndex} 的事情和 data=first={index === 0} , 样式基于 [data-selected=true]选择器。

关于javascript - Svelte 条件元素类报告为语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399018/

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