我正在开发我的第一个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;
}
};
这是与connect()一起使用的“mapStateToProps”函数的代码
const mapStateToProps = (s) => {
return {
calculations: s.calculations ||[]
};
};
当我以LOAD_CALCULATIONS类型调度 Action 时,我可以看到日志跟踪(使用react-logger),但是状态对象对我来说似乎很奇怪。有人可以指出我的错误吗?
log trace using react-logger
最佳答案
工作流程对我来说很好。状态对象看起来也不错,但是在导入reducer来配置商店时,您可能想要更改别名,以使其更加直观。
在您的配置存储文件中:
import calculations from 'reducers/CalculationReducer';
请注意,这要求您将
CalculationReducer
导出为默认值。然后,您将在状态对象中看到calculations
而不是CalculationReducer
。而且我注意到您在执行操作时有一个
payload
,但从未在reducer中处理过。如果在状态对象中需要它,则使用action.payload
在reducer中对其进行处理。
关于javascript - 调用mapStateToProps似乎传递了错误的状态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938177/