【发布时间】:2021-09-28 10:16:13
【问题描述】:
我创建了一个包含用户列表的商店,我想使用不同的参数进行订购。
store.js
export const users = writable([
{
"id": 11,
"name": "Kepler",
},
{
"id": 13,
"name": "Planck",
},
// more users going in here
为此,我使用来自 Lodash 的 orderBy。
案例 A。如果我不使用每个块的键控,那么 orderBy 将按预期工作。
App.svelte
{#each _.orderBy($users, [param], [order]) as user}
<div>{user.id} {user.name}</div>
{/each}
但是,如果我删除或对我的商店进行一些特定更改,更新将无法正常工作。 A better explanation of what's happening in the Svelte's docs.
案例 B。如果我对每个块使用键控,则更新按预期工作,但不是 orderBy。
App.svelte
{#each _.orderBy($users, [param], [order]) as user (user.id)}
<div>{user.id} {user.name}</div>
{/each}
Here a Real Example on Svelte REPL.
访问上面的链接并单击按钮以在升序或降序之间切换。
可能我错过了关于每个块的键控,但想弄清楚 Svelte 专家如何解决这个问题。
【问题讨论】:
-
这是3.38版本的一个bug,下个版本会修复这个问题
-
对我来说似乎是个错误。
-
确实很奇怪。但是,如果您必须快速修复它,那么旧的
.sort()完全可以完成这项工作:svelte.dev/repl/e548b8072b7e4e9b936e8661af5d59d4?version=3.38.3
标签: javascript svelte svelte-3 svelte-component svelte-store