调用mapStateToProps似乎传递了错误的状态对象

时间:2016-10-08 22:49:59

标签: javascript error-handling react-redux

我正在开发我的第一个React-Redux应用程序。

这是我的reducer的代码(我只有一个):

const CalculationsReducers = (state = {}, action) => {
    switch (action.type) {
        case CalculationsActions.LOAD_CALCULATIONS:
            return Object.assign({}, state, {
                calculations: [{
                    id: 'abc',
                    name: 'test',
                    date: 'test',
                    status: 'in progress'
                }]
            });
        default:
            return state;
    }
};

这是我的mapStateToProps'的代码。我用connect()

的函数
const mapStateToProps = (s) => {
    return  {
        calculations: s.calculations ||[]
    };
};

当我发送一个类型为LOAD_CALCULATIONS的动作时,我可以看到一个日志跟踪(使用react-logger),但状态对象对我来说似乎很奇怪。有人能指出我的错误吗?

log trace using react-logger

1 个答案:

答案 0 :(得分:0)

工作流程对我来说很好。状态对象看起来也很好,但您可能希望在导入reducer时更改别名以配置商店,以使其更直观。

在配置存储文件中:

import calculations from 'reducers/CalculationReducer';

请注意,它要求您导出CalculationReducer作为默认值。然后,您会在状态对象中看到calculations而不是CalculationReducer

我注意到你有一个payload以及你的动作但从未在减速器中处理过。如果在state对象中需要它,则使用action.payload在reducer中处理它。