2016-06-11 110 views
0

mapStatToProps是它自身两次的调用,并在第二次调用时加载数据,但不作为prop分配给组件,并返回一个空数组。React Redux mapStateToProps在第二次调用中加载数据

减速:

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

这里是我的mpStateToProps FUNC:

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

这里是我的组件的状态:

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

是'state.posts'数组的数组,或者你为什么要做'state.posts [0] .filter'而不是'state.posts.filter'? – webdeb

+0

@webdeb对不起,state.posts [0] .filter应该是state.posts.filter,我在这里发布代码时犯了一个错误,但问题仍然是一样的。 已更新P.S代码。 – Khpalwalk

回答

1

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

componentWillReceiveProps(nextProps) { 
    this.setState({ 
    post: nextProps.post 
    }); 
} 
相关问题