局部变量未返回正确的值+异步操作错误

时间:2017-02-06 10:46:10

标签: reactjs redux

我正在使用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.

的错误

1 个答案:

答案 0 :(得分:0)

由于您只想遍历数组,因此不希望return为每个元素添加内容,因此请勿使用map,请使用forEach它不会{{1} }} return的任何内容,使用此default

code