javascript - Svelte 迭代键数组并从对象获取键

标签 javascript svelte

我有一个对象评论:

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/

相关文章:

javascript - 显示表单提交到 DOM 的值

javascript - 单击不在 React.js 中表单内部的按钮后如何重置输入值

javascript - fullpage.js,具有较大的部分并禁用某些部分的滚动

svelte - 从距 IP 最近到最远的距离对数组进行排序

svelte - 是否可以在运行时动态加载 Svelte 模板?

php - 没有提交的单选按钮值到mysql

javascript - 过滤对象并将结果显示到 DOM (JS)

javascript - 如何在 Svelte 上移动 prop 数组?

node.js - Svelte/Sapper - 遇到与 Luxon 和 Lodash 构建相关的错误

svelte - 自定义 Google 登录按钮不会出现在 Svelte 中