已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
昨天关门了。
Improve this question的
使用时我注意到:
const sectorsSelector = state => state.sectors
字符串
使make组件呈现一次,但使用此选项,会将组件重新呈现8次以上
const sectorsSelector = state =>
state.sectors && state.sectors.filter(d => !d.deleted)
型
有什么区别呢?为什么最后一个例子会使组件重新渲染这么多次?我的减速器如下所示:
switch (type) {
case SECTORS.loadSuccess:
return payload.sectors.sort((a, b) => a.index - b.index)
default:
return state
}
型
我使用以下命令调用组件中的选择器:
const sectors = useSelector(sectorsSelector)
型
1条答案
按热度按时间irlmq6kh1#
我相信
useSelector
在每次存储调度时都会对以前读取的值与当前值进行比较。由于
Array.filter()
每次都返回一个新的数组,因此浅层比较将触发组件上的重新呈现从redux-toolkit导出的createSelector函数解决了这个问题