2017-05-10 4 views
0

Alors disons que je fais un appel API REST et recevez un JSON dans ce format:Immutable.Js - Ajouter nouvelle propriété dans Carte

{ 
    "plan": { 
     "createdDate": "05/04/2017", 
     "location": { 
      "city": null 
      "state": null 
     } 
     "family": null 
    } 
} 

Et à l'intérieur de mon réducteur, faire le JSON comme immuable que si:

Immutable.Map(Immutable.fromJS(action.json)) 

en cours de route, est-il possible d'ajouter des propriétés sous family?

Par exemple, lorsque je présente une forme à un serveur, idéalement, je voudrais envoyer quelque chose comme ceci:

{ 
    "plan": { 
     "createdDate": "05/04/2017", 
     "location": { 
      "city": null 
      "state": null 
     } 
     "family": { 
      "father": "Homer", 
      "mother": "Marge", 
      "son": "Bartholomew" 
     } 
    } 
} 

Ou dois-je initialiser premier à avoir ces propriétés en family dès le départ?

Répondre

0

Pour l'enregistrement, vous n'avez pas besoin de faire

const m = Immutable.Map(Immutable.fromJS(action.json)) 

Mais

const m = Immutable.fromJS(action.json) 

fait le travail

Ensuite, vous pouvez le faire simplement:

const n = m.setIn(['plan', 'family'], /* your family object */) 

Ici:

const n = m.setIn(['plan', 'family'], Immutable.Map({ father: 'Homer', mother: 'Marge', son: 'Bartholomew' }))