【发布时间】:2016-06-10 14:47:40
【问题描述】:
我正在使用 Redux 和 React 创建一个应用程序。我遇到了一个问题,我无法将状态映射到组件属性,因为状态具有与我使用的减速器名称匹配的属性。
根reducer是用combineReducers方法创建的
const rootReducer = combineReducers({
appReducer
});
初始状态是
const initialState = {
sources: [],
left: {},
right: {},
diff: {}
}
然而在组件函数mapStateToProps:
function mapStateToProps(state) {
return {
sources: state.sources
}
}
state.sources 是undefined,因为state 参数的值是
{
appReducer: {
sources: [],
left: {},
right: {},
diff: {}
}
}
这是 redux 的一个特性吗?所以当我使用更多的reducer时,它们都会向state变量添加新属性?还是我这边有什么问题(我从未在 redux 教程中注意到这种行为)。
谢谢
【问题讨论】:
-
你的代码是正确的
state.appReducer. sources你需要reducer名字 -
假设你有 2,3 个 reducer,每个 reducer 都有
sources属性 -
你可以通过
state.appReducer. sources和`state.appReducer.2 sources`获取具体的sources -
你所描述的是
combineReducers所做的一部分。 -
您需要在 appReducer 中设置“state = initialState.sources”来更新/访问特定状态
标签: javascript reactjs state redux