【问题标题】:React Redux mapStateToProps loads data in the second callReact Redux mapStateToProps 在第二次调用中加载数据
【发布时间】:2016-06-11 12:00:15
【问题描述】:

mapStatToProps 两次调用它自己并在第二次调用时加载数据,但随后不将其作为道具分配给组件并返回一个空数组。

减速器:

 export default function postsReducer(state = initialState.posts, action) {
  switch (action.type) {
    case types.LOAD_POSTS_SUCCESS:
      return action.posts;
    default:
      return state;
  }
 }

这是我的 mpStateToProps 函数:

function mapStateToProps(state, ownProps) {
     const singlePost = state.posts.filter(post => post.code == ownProps.params.id);
      return {
        post: singlePost
     };
   }

这是我的组件的状态:

this.state = {
   post: [...props.post]
};

【问题讨论】:

  • state.posts 数组的数组,或者你为什么要使用 state.posts[0].filter 而不是 state.posts.filter
  • @webdeb 抱歉 state.posts[0].filter 应该是 state.posts.filter,我在这里发布代码时出错了,但问题仍然相同。 P.S 代码更新。

标签: javascript arrays reactjs ecmascript-6 redux


【解决方案1】:

您的代码可能是正确的,但是当您的组件收到新道具时,您似乎忘记更新 state.post 值。

componentWillReceiveProps(nextProps) {
  this.setState({
    post: nextProps.post
  });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多