React / Redux App通过API从MongoDB获取数据

时间:2017-08-18 00:43:16

标签: reactjs redux store reducers mern

我是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)

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在combineReducer文件中,我忘了添加PostReducer作为评论中free_soul提到的内容。

export default combineReducers({
  app,
  posts,
});

导入PostReducer并添加它,就行了!