我有一个对象评论
:
let comments = {"id1": ..., "id2: ..., ...};
然后我有一个数组commentsSortedByDate
:
let commentsSortedByDate = ["id2", "id1", ...];
我想重申一下这些评论。这是我尝试过的:
{#each commentsSortedByDate as commentId}
<script> let comment = comments[commentId]; </script>
<div class="comment" class:new={comment.isNew}> ... </div>
{/each}
这不起作用。如何在循环中定义此 comment
变量,以便可以多次访问它,而不必每次都键入 comments[commentId]
?
最佳答案
目前,除了您建议的方法(each
hack 或始终执行comments[commentId]
)之外,没有其他方法可以做到这一点。 Svelte 即将推出一项新功能,这将使这成为可能:Using @const in markup 。这还没有实现,但是当它实现时,你可以这样做:
{#each commentsSortedByDate as commentId}
{@const comment = comments[commentId]}
<div class="comment" class:new={comment.isNew}> ... </div>
{/each}
关于javascript - Svelte 迭代键数组并从对象获取键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68300895/