2

我尝试使用 Redux 管理我的 Riot 应用程序状态,但我注意到当我的模型(一个简单的项目数组)发生变化时,即使修改与一个项目相关,从该集合呈现的每个元素都会重新呈现。

我在这里重现了这个问题

使用可变减速器没有问题,在这两种情况下,我都会观察存储中的更改以触发视图更新(对于可变数据来说是不必要的)。

this.on('mount', () => {
  opts.store.subscribe(() => {
    this.update({
      items: opts.store.getState()
    })
  })
})

gif 表明我的列表中的 DOM 已完全重新渲染

我认为 Riot 的虚拟 DOM 检查只会重新渲染 DOM 的更改部分......

我做错什么了吗?

4

1 回答 1

1

添加no-reorder到循环:

<li no-reorder each={ items } onclick={ toggle }>
  <span>{x}</span>
</li>
于 2016-07-28T20:49:34.677 回答