我是Redux的新用户,并使用广告系列/产品/用户以及来自MERN v2.0样板的帖子设置应用。
我已将我的应用设置为具有fetchPosts操作。 我的页面有以下内容(下半部分的代码)
// Actions required to provide data for this component to render in sever side.
PostListPage.need = [() => {
return fetchPosts();
}];
// Retrieve data from store as props
function mapStateToProps(state) {
return {
posts: getPosts(state)
};
}
PostListPage.contextTypes = {
router: React.PropTypes.object,
};
export default connect(mapStateToProps)(PostListPage);
Get Posts传递状态,并应将posts对象添加到商店。 我可以点击API路由并看到后端正在工作并按预期加载JSON对象。
但是,我的应用程序在PostReducer中给我一个错误 -
// Get all posts
export const getPosts = state => state.posts.data;
错误是我去路线的时候 -
TypeError: Cannot read property 'data' of undefined
at getPosts (/Users/yasirhossain/Projects/showintel/client/modules/Post/PostReducer.js:31:34)
at mapStateToProps (/Users/yasirhossain/Projects/showintel/client/modules/Post/pages/PostListPage/PostListPage.js:48:12)
at Connect.configureFinalMapState (/Users/yasirhossain/Projects/showintel/node_modules/react-redux/lib/components/connect.js:155:27)
感谢任何帮助!
答案 0 :(得分:0)
在combineReducer文件中,我忘了添加PostReducer作为评论中free_soul提到的内容。
export default combineReducers({
app,
posts,
});
导入PostReducer并添加它,就行了!