2017-03-03 7 views
0

内にネストされたリストに追加/削除私は(fromJSを使用して不変オブジェクトに変換されている次のようなデータ構造を持っている)不変JS - Reduxののappilcationに取り組む地図

import { Map, push, fromJS } from 'immutable'; 

const initialState = fromJS({ 
filter: "cards", 
contacts: [ 
    { 
     name: "Someone 1", 
     email: "[email protected]", 
     phone: "+1 900 78601", 
     location: "Los Angeles" 
    }, 
]}); 

と私の減速のルックス

function contactsReducer(state = initialState, action) { 
switch (action.type) { 
    case ADD_CONTACT: 
     return state.get('contacts').push(Map(
      { 
       name: "Someone 1", 
       email: "[email protected]", 
       phone: "+1 900 78601", 
       location: "Los Angeles" 
      } 
     )); 
    default: 
     return state; 
}} 

連絡先配列をターゲットに設定して連絡先を追加する方法はわかりません。私が書き下ろした減速器は、新しい状態の構造全体を変更します。助けてください?

答えて

0

アレックス・パリジが与えた答えに基づいてわかりましたが、これにはわずかな変更が必要でした。ここにあります:

state.set('contacts', state.get('contacts').push(Map(
      { 
      name: "Someone 1", 
      email: "[email protected]", 
      phone: "+1 900 78601", 
      location: "Los Angeles" 
      } 
))) 
0

マップ上でsetを使用して、pushを呼び出した後に、新しく更新されたリストでcontactsフィールドを更新することができます。

state.set('contacts').push(Map(
    { 
     name: "Someone 1", 
     email: "[email protected]", 
     phone: "+1 900 78601", 
     location: "Los Angeles" 
    } 
)) 
+0

動作しません。 Uncaught TypeError:state.set(...)。pushは関数ではありません。 – rizvified

関連する問題