2016-08-03 62 views
0

我正在使用React Reselec t,我试图筛选selectedClients,使得我只返回来自selectedClientsIds的id的clients.all。使用React Reselect筛选2个阵列

selected_clients.js

import _ from 'lodash'; 
import { createSelector } from 'reselect'; 

const clientSelector = state => state.clients.all 
const selectedClientSelector = state => state.selectedClientIds 

const getClients = (all, selectedClientIds) => { 
    const selectedClients = _.filter(
     all, 
     client => _.contains(selectedClientIds, all.id) 
    ); 

    return selectedClients; 
}; 

export default createSelector(
    clientSelector, 
    selectedClientSelector, 
    getClients 
); 

的clients.all店看起来是这样的:

[ 
    { 
     "id": 1, 
     "name": “Bob”, 
    }, 
    { 
     "id": 2, 
     "name": “Mary ”, 
    } 
] 

的selectedClientIds店看起来是这样的:

[1] 

我将如何结合两者只显示来自selectedClientId's的id的客户列表?随着过滤器我有以上,我不断收到一个空数组

[] 

回答

2

你需要传递client.idall.id

const getClients = (all, selectedClientIds) => { 
    const selectedClients = _.filter(
     all, 
     client => _.contains(selectedClientIds, client.id) 
    ); 

    return selectedClients; 
};