【发布时间】:2022-05-07 20:39:13
【问题描述】:
我正在迭代一个数据数组,我想在渲染它之前对其进行一些处理。
我知道我可以创建一个新组件并将数组条目传递给 i,并在该子组件内进行处理,或者我可以添加一个辅助函数 getClass(entry) 或者我可以内联一个三元运算符,
但我想知道是否有办法做这样的事情,将一些代码内联到每个块中。非功能示例:
<div class="Menu">
{#each menuEntries as entry, i }
{{
let classes = entry.classes;
if (entry.submenu) {
classes += ' has-submenu';
}
}}
<div class="menu-entry {classes}">...</div>
{/each}
</div>
编辑:
这似乎是一种解决方法。唯一的问题是 classes 必须在循环之前定义。
<script>
let classes = '';
</script>
<div class="Menu">
{#each menuEntries as entry, i }
{(() => {
classes = entry.classes;
if (entry.submenu) {
classes += ' has-submenu';
}
return ''; // return empty string so Svelte does not print it
})()}
<div class="menu-entry {classes}">...</div>
{/each}
</div>
【问题讨论】:
标签: javascript svelte svelte-3