防止反应并重新选择排序项目
Prevent react and reselect from sorting items
我正在使用 React 和 Redux。我有一些物品,例如 {name: 'Jim', votes: '5', type: 'candidate'}
我正在使用重新选择来获取过滤后的项目列表。我还使用 reselect 按投票对项目列表进行排序。
当一个项目被投票时,它会自动改变列表中的位置(项目改变,重新选择完成它的工作并重新排序列表)。
我想阻止这种行为。如果不在州内重新排序,这可能吗?
我猜你可以在 Redux 状态下引入一个新的 属性,比如你初始化为 true
的 shouldSort
。然后,在你的 updateVote(newValue)
动作(或者你怎么称呼它)中,你让该动作的减速器也将 shouldSort
设置为 false
.
现在您可以在重新选择函数中使用 shouldSort
来确定它是否应该排序。
请注意,当您 enter/leave 页面时,您还需要重置 shouldSort
的状态。否则当你离开并再次进入页面时,你可能得不到排序列表。
另一种方法可能包括在数据规范化或项目初始化期间生成排序信息 .您可以将信息保存到一个单独的数组中,或者只是将 sorting
属性 推入每个项目对象。
这样更新分数不会干扰项目排序。
我正在使用 React 和 Redux。我有一些物品,例如 {name: 'Jim', votes: '5', type: 'candidate'}
我正在使用重新选择来获取过滤后的项目列表。我还使用 reselect 按投票对项目列表进行排序。
当一个项目被投票时,它会自动改变列表中的位置(项目改变,重新选择完成它的工作并重新排序列表)。
我想阻止这种行为。如果不在州内重新排序,这可能吗?
我猜你可以在 Redux 状态下引入一个新的 属性,比如你初始化为 true
的 shouldSort
。然后,在你的 updateVote(newValue)
动作(或者你怎么称呼它)中,你让该动作的减速器也将 shouldSort
设置为 false
.
现在您可以在重新选择函数中使用 shouldSort
来确定它是否应该排序。
请注意,当您 enter/leave 页面时,您还需要重置 shouldSort
的状态。否则当你离开并再次进入页面时,你可能得不到排序列表。
另一种方法可能包括在数据规范化或项目初始化期间生成排序信息 .您可以将信息保存到一个单独的数组中,或者只是将 sorting
属性 推入每个项目对象。
这样更新分数不会干扰项目排序。