2016-09-27 2 views
0

저장소에서 데이터를 추출하기 위해 reselect를 사용하고 있습니다. 나는 DivisionsTeams의 명부를 유지하고 각 사단에는 그것의 팀의 명부가있다. 나는 또한 활발한 부서의 기록을 유지하고 배열 activeIds에 보관하십시오. I는 구분 데이터와 수화 activeIds 배열을 반복하고 getActiveDivisions 선택기를선택기를 사용하여 중첩 된 결과 결합

const divisions = { 
    activeIds: [], // this contains the selected division IDs 
    list: { 
     1: { 
     name: 'Division 1', 
     teams: [1,2,3] 
     } 
     2: { 
     name: 'Division 2', 
     teams: [4,5,6] 
     } 
     // and so on... 
    } 
} 

const teams = { 
    1: { name: 'Team 1' } 
    // and so on... 
} 

한 결과이다 : 기본적

I이 트리 구조를

// if activeIds contain [1,3] 

const activeDivisions = { 
    1: { 
    name: 'Division 1', 
    teams: [1,2,3] 
    } 
    3: { 
    name: 'Division 3', 
    teams: [7,8,9] 
    } 
} 

지금 getActiveDivisionsWithTeams 선택기를 만들고 싶습니다. 수채화 팀과 함께 activeDivisions 트리와 동일한 구조를 기본적으로 가져옵니다. 예를 들면 다음과 같습니다.

const activeDivisionsWithTeams = { 
    1: { 
    name: 'Division 1', 
    teams: { 
     1: { name: 'Team 1' }, 
     2: { name: 'Team 2' }, 
     3: { name: 'Team 3' } 
    } 
    } 
    // and so on... 
} 

아니면 수분이있는 팀과 함께 다른 부문을 유지해야합니까?

// Notice there is no `name` on division entry 
const activeDivisionsWithTeams = { 
    1: { 
    teams: { 
     1: { name: 'Team 1' }, 
     2: { name: 'Team 2' }, 
     3: { name: 'Team 3' } 
    } 
    } 
    // and so on... 
} 

또는이 시나리오에 가장 근접한 방법은 무엇입니까?

답변

0

데이터를 완전히 수화하는 것이 좋다고 생각하지 않습니다.

모든 팀에 대해 무언가를 표시하려면 각 아이디를 하위 구성 요소로 전달한 다음 하위 구성 요소에 선택기를 사용하여 필요한 데이터를 가져옵니다.

또는 데이터의 다른 부분을 필요로하는 계산을 수행하는 경우 완전히 수분이 유지 된 데이터를 반환하는 대신 선택기에서 수행하십시오.