2016-09-14 14 views
0

私はバックエンドからjsonデータを受け取りました。このデータを還元ストアに状態として保存したいと思います。常に私が下記そうであるように深く不変にこのデータを変換するための正しいアプローチである:還元状態のjsonを保存する

reducer(state = initialState, action = {}) 
{ 
    switch(action.type) 
    { 
     case "data_update": 
      return Immutable.fromJS(action.data); 
     default: 
      return state; 
    } 
} 

私はこれが行われているコードに取り組んでいます:

 case "data_update": 
     return Immutable.Map(action.data); 

のための十分な理由があるかもしれませんこれをする?この理由は何でしょうか?

答えて

0

データをMapに変換することは完全にオプションです! Immutableはまったく使用しないことを選択できます。 Reduxのコアコ​​ンセプトは状態を保存し、それを改変することはないので、人々はImmutableを使用して状態をフリーズし始めました。あなたが不変であることを全くスキップするならば、それは完全に大丈夫です。

が深く不変コレクションにデータを変換することは、誤ってこのような状態を変異から私たちを防ぐ -

reducer(state = initialState, action = {}) 
{ 
    switch(action.type) 
    { 
     case "data_update": 
      state.users = action.payload; 
      break; 
     default: 
      return state; 
    } 
} 
+0

私は彼らが好きなように1が行うことができますが、それはへのデータの浅い変換を行うための意味を成してないことを理解しImmutable.Mapを介して不変のコレクション。私には不思議そうだ。 – Baz

+0

@Baz私たちは、私たちの製品に不変的なものを多用しています。それは理にかなっている! – Mihir

+0

不変は意味がありますが、深くネストされたjsonオブジェクトに対してImmutable.Mapを使用するためには、結果オブジェクトが不変ではないため、わかります。 – Baz

関連する問題