2016-05-04 63 views
5

Bu işlevi kullanmaya çalıştığımda typeError alıyorum.Immutable.js - toJS Bir İşlev Değil

Immutable.js belgelerine göre, bir nesneyi normal JS obj'e dönüştürmek istiyorum. İşte

örnektir:

import { Map as iMap, 
     toJS } from "immutable"; 

    let anExample = iMap({ 
     a : "a", 
     b : "b" 
    }); 
    console.log("anExample is...", toJS(anExample)); 

Ben Map bir hata alamadım ama toJS yapmak. Neyi yanlış yapıyorum? Teşekkür ederiz,

+1

Bu, haritaların immutable'ından ziyade ['yerel Map'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) 'a varsayılan olarak geliyor. Immutable yüklü mü? Bu aynı zamanda 'toJS' nin neden tanımlanmadığını da açıklayacaktır ... – Dom

+0

evet öyle. Ve 'immutable' 'Map' fonksiyonunu 'iMap' (Line1) 'e atıfta bulunuyorum ve' anExample 'yazdığımda doğru 'console.log'unu anladığım kadarıyla yerel olarak varsayılan değerlerini düşünmüyorum. – Kayote

+0

Oh bekle! Meseleyi görüyorum. bir dakika, bir cevap yazacağım – Dom

cevap

7

toJS öğesinin içe aktarılmasına gerek yoktur, çünkü bu, değişmez nesnenin kendisinde bulunur. senin Örneğin dayanarak, şöyle konuda giderdim: Bu konuda gidebiliriz

import { Map as iMap } from "immutable"; 

let anExample = iMap({ 
    a : "a", 
    b : "b" 
}); 
console.log("anExample is...", anExample.toJS()); 

bir başka yolu fromJS içe aktarmaktır. fromJS, JS'yi değişmeze dönüştürmenin "tembel" bir yoludur; bununla birlikte, belirli ölçülmez yapılara (yerine OrderedSet gibi) ihtiyaç duymanız halinde bu ideal değildir.

import { fromJS } from "immutable"; 

let anExample = fromJS({ 
    a : "a", 
    b : "b" 
}); 
console.log("anExample is...", anExample.toJS()); 

Umut bu yardımcı olur ve herhangi bir sorunuz varsa bana bildirin:

Böyle böyle idare ediyorum!

+1

Sen bir dahisin. Teşekkür ederim. – Kayote