combineReducer导致属性设置为undefined

时间:2016-10-18 18:39:16

标签: redux reducers

想象一下,我有以下简单的减速器

let reducer = (prevState = {}, action) => {
    return {
        A: A(prevState.A, action),
        B: B(prevState.B, action)
    }
};
let A = B = (prevState, action) => {
    if (action.type == 'foo')
        return 'bar';
    else
        return prevState;
};

任何行动,特别是@@ INIT,都会导致我的州成为{A: undefined, B: undefined}。这并不理想,因为我的状态应该仍然是{}现在

这种情况正在发生,因为我遵循combineReducer模式。无论如何要解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的Reducer未提供prevState的初始状态值。因此,A()B()第一次运行时,prevState未定义并返回。

Redux文档中的新"Structuring Reducers"部分在"Initializing State"指南中介绍了此内容。