2016-09-27 15 views
0

私はストアから自分のデータを派生させるために再選択を使用しています。私は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... 
} 

、その結果は次のとおり:基本的

私はこの木構造を有する

// 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

データを完全に水分補給するのは良い方法ではないと思います。

すべてのチームで何かを表示する場合は、各IDを子コンポーネントに渡します。子コンポーネントでは、セレクタを使用して必要なデータを取得できます。

または、データの異なる部分が必要な計算を行っている場合は、完全に水和されたデータを返すのではなく、セレクタ内でこれを実行します。

関連する問題