2017-04-20 2 views

Répondre

5

Peu:

map.getIn(["a", "b", "c"]) est un raccourci vers map.get("a").get("b").get("c")

détails:

Vous avez probablement obtenu dans l'un des pièges fromJS. Appel:

const map = Immutable.fromJS({a: {b: {c: "banana"}}}); 

crée un Map avec seulement a clé, sa valeur est aussi un Map avec seulement b clé, qui est aussi une valeur est Map avec seulement la clé c et la valeur banana.

Avec d'autres mots fromJS va dans la profondeur de l'objet fourni et définit Map pour chaque Object et un List pour chaque Array

Avec cet exemple, l'appel map.getIn(["a", "b", "c"]) est une sorte de raccourci vers map.get("a").get("b").get("c")

mais si vous définissez map comme Map:

const map = new Immutable.Map({a: {b: {c: "banana"}}}); 

il crée une carte, avec seulement la clé a, dont la valeur est l'objet plaine {b: {c: "banana"}}, et appelant un map.get("a").get("b").get("c") vous jettera quelque chose comme get is not a function, puisque map.get("a") retournera {b: ...} objet simple.

Les mêmes raisons sont pourquoi map.getIn(["a", "b", "c"]) ne fonctionnera pas comme vous pouvez vous y attendre.