我正在使用Redux-react。
这是一个小代码:
export function copyYearData(year) {
var listData = [
{
"categories": "Years"
},
{
"options": [
{
"label": 2013,
"value": 2013,
},
{
"label": 2014,
"value": 2014,
},
{
"label": 2015,
"value": 2015
},
{
"label": 2016,
"value": 2016
},
{
"label": 2017,
"value": 2017,
},
{
"label": 2018,
"value": 2018,
},
{
"label": 2019,
"value": 2019
},
{
"label": 2020,
"value": 2020
},
{
"label": 2021,
"value": 2021
}
]
}
];
var copyFrom = '';
var copyTo = '';
listData.map(function (obj) {
if (obj.options) {
obj.options.map(function (item) {
if (item.value == year && year < new Date().getFullYear()) {
copyFrom = year;
}
if (item.value == year && year >= new Date().getFullYear()) {
copyTo = year;
}
})
}
});
if (copyFrom != '' && copyTo != '') {
return {
type: 'COPY_DATA',
payload1: copyFrom,
payload2: copyTo
}
}
};
请考虑year = 2015
(适用于少于当年,即2017年)和year = 2019
(适用于当年以上,即2017年)
我的减速机名称是&#39; helloReducer&#39;。
当我使用console.log(store.getState().helloReducer);
它的当前输出为Object {copyFrom: "", copyTo: ""}
预期输出为Object {copyFrom: 2015, copyTo: 2019}
我也遇到Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.
答案 0 :(得分:0)
由于您只想遍历数组,因此不希望return
为每个元素添加内容,因此请勿使用map
,请使用forEach
它不会{{1} }} return
的任何内容,使用此default
:
code