1

我创建了一个包含用户列表的商店,我想使用不同的参数进行订购。

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}

但是,如果我删除或对我的商店进行一些特定更改,更新将无法正常工作。对 Svelte 文档中发生的事情的更好解释

案例 B.如果我对每个块使用键控,则更新按预期工作,但不是orderBy

App.svelte

{#each _.orderBy($users, [param], [order]) as user (user.id)}
    <div>{user.id} {user.name}</div>
{/each}

这是 Svelte REPL 的真实示例

访问上面的链接并单击按钮以在升序或降序之间切换。

可能我错过了关于每个块的键控,但想弄清楚 Svelte 专家如何解决这个问题。

4

1 回答 1

1

这是版本 3.38 中的错误。刚刚发布的 3.39 版本修复了这个问题。

于 2021-07-21T14:47:32.770 回答