2016-06-13 4 views
2

私は私がすべての人々との言葉遣いを受け取るために、この応答を正常化したいと思い、このnormalizr関数で同様の値をマージする方法はありますか?

[ 
    { 
     id: 1, 
     name: "Alexandr", 
     children: [ 
     { 
      id: 2, 
      name: "Stephan" 
     }, 
     { 
      id: 3, 
      name: "Nick" 
     } 
     ] 
    }, 
    { 
     id: 4, 
     name: "David", 
     children: [ 
     { 
      id: 3, 
      name: "Nick" 
     }, 
     { 
      id: 6, 
      name: "Paul" 
     } 
     ] 
    } 
] 

などのサーバからの異常な応答を持っています。だから、私はこの

const people= new Schema('people'); 
people.define({ 
    Children: arrayOf(people), 
    NotOwnChildren: arrayOf(people) 
}); 
let normalized = normalize(response.data, arrayOf(people)); 

が、私はエラー を取得し、このようにやって子供たち「2人をマージすると、その中に等しくないデータを見つけ、 『フラット行くnormalizr使用』の値を。以前の値を使用します。」 同じIDを持つ人物をマージするためにnormalizrを調整するには(最新のデータでエンティティを更新する)?

答えて

3

peopleの2つのキーの値が異なっているようです(私はあなたの入力例が切り捨てられていると仮定しています)。 2 @ Normalizrについては

手動で問題を解決するために、カスタムmergeIntoEntity機能を使用することができます。


Normalizr @> = 3.0.0の場合は、mergeStrategyが必要です。

+0

回答ありがとうございます –

関連する問題