Immutable.js - toJS不是一个函数

Kay*_*ote 7 javascript dictionary immutability immutable.js

我尝试使用此函数时收到typeError.

根据Immutable.js文档,我想将obj转换为普通的JS obj.

这是一个例子:

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

    let anExample = iMap({
        a : "a",
        b : "b"
    });
    console.log( "anExample is...", toJS( anExample ) );
Run Code Online (Sandbox Code Playgroud)

我没有收到错误Map,但我确实这样做了toJS.我究竟做错了什么?谢谢,

Dom*_*Dom 11

您不需要导入toJS,因为它在不可变对象本身上找到.根据你的例子,你会这样做:

import { Map as iMap } from "immutable";

let anExample = iMap({
    a : "a",
    b : "b"
});
console.log( "anExample is...", anExample.toJS() );
Run Code Online (Sandbox Code Playgroud)

另一种方法是进口fromJS.fromJS是一种将JS转换为不可变的"懒惰"方式; 但是,如果你需要特殊的不可变结构(比如一个OrderedSet而不是一个List),它并不理想.

你会像这样处理:

import { fromJS } from "immutable";

let anExample = fromJS({
    a : "a",
    b : "b"
});
console.log( "anExample is...", anExample.toJS() );
Run Code Online (Sandbox Code Playgroud)

希望这有帮助,如果您有任何疑问,请告诉我!