2016-08-30 13 views
0

私は様々なタイプのブログ投稿を保持するレデューサーを持っています。私は必要なデータの一部をフェッチするためにselectを使用していますが、状態変更の再選択がすべてのセレクタを再計算するたびに私のコンポーネントでReactJs reselectは毎回すべてのセレクタを再計算します

initialstate = { 
    blogPosts: { byId: { 1: { id: 1, parent: null } }, ids: [1] }, 
    commentPosts: { byId: { 2: { id: 2, parent: 1 } }, ids: [2] }, 
    filter:{ selectedBlog: null } 
}; 

const reducer = (state = initialstate, action) => { 
    if (action.type == 'filter') { 
    return object.assign(state, { filter: action.filter }); 
    } 
    return state; 
} 

const Blogselector = state => state.posts.blogPosts 
const Commentselector = state => state.posts.commentPosts 
const getFilters = state => state.posts.filter; 

私はブログの記事を表示しています、私はこの問題は、フィルターの変更は、状態の全投稿ブランチは、私が戻ってるとあまり変化したときであるfilter.selectedBlog = post.id

を設定するアクションを派遣します新しいコピー。だから私が書くセレクタは、フィルタが変わるたびにすべてを再計算することになります。

フィルタリングステートセレクタを作成するための標準的な方法は何ですか?

答えて

0

セレクタコードの部分を表示してください。

上記のコードではfilterが変更されましたが、blogPostscommentPostsは変更されていないため、再計算が不要です。

関連する問題