ऐसा इसलिए होता है क्योंकि कुंजी 'selector'
में एक गैर-मानचित्र मान है। setIn
अगर हम यह सुनिश्चित करें कि 'selector'
के लिए मूल्य भी एक अपरिवर्तनीय मानचित्र है काम करेंगे:
var map1 = Immutable.Map({ 'selector': Immutable.Map({ 'type': 'bar' })});
var map2 = map1.setIn(['selector', 'type'], 'foo');
console.log(map1.toJS());
console.log(map2.toJS());
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.js"></script>
गहरा मैप्स और सूचियाँ आप fromJS()
उपयोग कर सकते हैं के लिए जावास्क्रिप्ट वस्तुओं और सरणी परिवर्तित करने के लिए। तो अगर आप और अधिक आसानी से लिख सकते हैं:
var map3 = Immutable.fromJS({ 'selector': { 'type': 'bar' }});
var map4 = map3.setIn(['selector', 'type'], 'foo');
console.log(map3.toJS());
console.log(map4.toJS());
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.js"></script>
तो अगर मैं एक गहरी नेस्ट उद्देश्य यह है कि मैं करने के लिए मैं रिकर्सिवली मैन्युअल घोंसले के हर स्तर के नक्शे के लिए है परिवर्तन करना चाहते हैं नहीं है? यह थोड़ा, अच्छा, बोझिल tbh लगता है। – hally9k
वह चित्रण के लिए था। आप मैप्स और सूचियों में जावास्क्रिप्ट ऑब्जेक्ट्स और Arrays को गहराई से परिवर्तित करने के लिए ['सेजेएस()'] (https://facebook.github.io/immutable-js/docs/#/fromJS) का उपयोग कर सकते हैं। – 1983