防止反应并重新选择排序项目

Prevent react and reselect from sorting items

我正在使用 React 和 Redux。我有一些物品,例如 {name: 'Jim', votes: '5', type: 'candidate'}

我正在使用重新选择来获取过滤后的项目列表。我还使用 reselect 按投票对项目列表进行排序。

当一个项目被投票时,它会自动改变列表中的位置(项目改变,重新选择完成它的工作并重新排序列表)。

我想阻止这种行为。如果不在州内重新排序,这可能吗?

我猜你可以在 Redux 状态下引入一个新的 属性,比如你初始化为 trueshouldSort。然后,在你的 updateVote(newValue) 动作(或者你怎么称呼它)中,你让该动作的减速器也将 shouldSort 设置为 false.

现在您可以在重新选择函数中使用 shouldSort 来确定它是否应该排序。

请注意,当您 enter/leave 页面时,您还需要重置 shouldSort 的状态。否则当你离开并再次进入页面时,你可能得不到排序列表。

另一种方法可能包括在数据规范化或项目初始化期间生成排序信息 .您可以将信息保存到一个单独的数组中,或者只是将 sorting 属性 推入每个项目对象。

这样更新分数不会干扰项目排序。