【发布时间】:2018-02-08 08:30:20
【问题描述】:
我正在尝试对这样的数组进行排序(我的状态):
[
{
name:"Aenean in justo ante"
},
{
name:"Phasellus viverra mattis dolor"
}
]
我向reducer发送一个动作:(reducer的一部分)
case 'SORT_COLLECTION':
return state.sort(function(a, b) {
var nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase();
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
return 0;
})
但它不起作用。 谁能告诉我错误在哪里?
【问题讨论】:
-
Sort 会改变那里的数组
-
Reducer 不应该改变一个状态。它必须返回一个新的状态对象,并且保持前一个状态对象不变。如果你想有排序选项,你必须向你的状态添加相应的属性(例如指定排序方向)并根据该属性的值对
render()中的数据进行排序。 -
“它不起作用”到底是什么意思。此代码不包含任何明显的错误。
标签: javascript reactjs sorting redux jsx