2016-06-11 12 views
0

mapStatToPropsは2回目の呼び出しでデータをロードしますが、2回目の呼び出しでデータをロードしますが、コンポーネントにプロップとして割り当てず、空の配列を返します。React Redux mapStateToPropsは2回目の呼び出しでデータをロードします

リデューサー:ここ

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' 'ているか、なぜあなたは[0] .filter'の代わりに、' 'state.posts.filter' state.postsをやっていますか? – webdeb

+0

@webdeb申し訳ありませんが、state.posts [0] .filterはstate.posts.filterでなければなりません。私はここでコードを投稿する際に間違いを犯しましたが、問題は同じです。 P.Sコードが更新されました。 – Khpalwalk

答えて

1

あなたのコードはおそらく正しいですが、それはのように思えますコンポーネントが新しい小道具を受け取ったときにstate.post値を更新するのを忘れてしまった。

componentWillReceiveProps(nextProps) { 
    this.setState({ 
    post: nextProps.post 
    }); 
} 
関連する問題