2016-06-11 109 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 
    }); 
} 
相關問題