想象一下,我有以下简单的减速器
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模式。无论如何要解决这个问题?
答案 0 :(得分:1)
您的Reducer未提供prevState
的初始状态值。因此,A()
或B()
第一次运行时,prevState
未定义并返回。
Redux文档中的新"Structuring Reducers"部分在"Initializing State"指南中介绍了此内容。