Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用redux对项目进行排序_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 如何使用redux对项目进行排序

Javascript 如何使用redux对项目进行排序,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我有一个reducer,我想在案例排序之后重新渲染我的其他组件,你猜怎么着?普通的方法不起作用,我怎么能做到案例排序\u最旧的返回排序但列表,但我的组件没有看到它 导出默认值(状态=allUserComments,操作)=>{ 开关(动作类型){ 案例添加注释: 返回[createNewComment(操作),…状态]; 案例分类: 返回状态。reverse(); 违约: 返回状态; } }反向变异原始数组。您需要创建另一个 case SORT_OLDEST: return [...s

我有一个
reducer
,我想在
案例排序之后重新渲染我的其他
组件
,你猜怎么着?普通的方法不起作用,我怎么能做到<代码>案例排序\u最旧的
返回排序但列表,但我的组件没有看到它

导出默认值(状态=allUserComments,操作)=>{
开关(动作类型){
案例添加注释:
返回[createNewComment(操作),…状态];
案例分类:
返回状态。reverse();
违约:
返回状态;
}

}
反向
变异原始数组。您需要创建另一个

case SORT_OLDEST:
    return [...state].reverse();
Array#reverse
改变原始数组(原始状态)


使用:
返回状态.slice().reverse()

您需要保持减缩器的纯函数,这意味着您不想直接改变您的状态。现在我可能错了,但我很确定
reverse()
会变异
状态
数组


只需在之前复制它,如
return[…state].reverse()

排序
state.sort()
看这里我的组件在case sort之后不会重新渲染,这是我的问题,然后尝试
state.slice().sort()
它仍然会变异原始数组。请在
reverse
函数之前移动右方括号
]
,否则,它仍将变异原始数组。