ImmutableJS 不适用于新的自定义对象实例
ImmutableJS not working with new custom object instance
在原始 JS 对象上使用 Immutable.fromJS()
按预期工作,returns 映射,但尝试对从构造函数获得的自定义对象执行相同的操作 Immutable.fromJS()
不工作。
含义:
{/*1*/}
: console.log
returns 自定义对象。
{/*2*/}
: console.log
returns 相同的 自定义对象,即使我使用了 Immutable.fromJS()
.
{/*3*/}
: console.log
returns 自定义对象。
{/*4*/}
:console.log
returns map = Immutable.fromJS()
,符合预期。
我在文档中找不到任何解释。
{/*EXPORTING CONSTRUCTOR*/}
export function MyObject() {
this.id = null;
this.name = '';
}
{/*EXPORTING RAW OBJECT*/}
export my_object = {
this.id = null;
this.name = '';
}
//in another file
//importing, and than:
let myConstructedObject = new MyObject();
let myRawObject = my_object;
{/*1*/} console.log(myConstructedObject) // => object
{/*2*/} console.log(Immutable.fromJS(myConstructedObject)) // => object ?!?!
{/*3*/} console.log(myRawObject) // => object
{/*4*/} console.log(Immutable.fromJS(myRawObject)) // => map (OK!)
我认为这个话题的人:实际上是从建设性的角度讨论了同样的问题。
总结那个讨论,你不能只是 "Immutivize" 一个自定义对象,但你可以自己编写一个不可变对象,使用 Immutable.Record(使用纯 ImmutableJS)或 Map(使用 'extendable-immutable'图书馆。)
在原始 JS 对象上使用 Immutable.fromJS()
按预期工作,returns 映射,但尝试对从构造函数获得的自定义对象执行相同的操作 Immutable.fromJS()
不工作。
含义:
{/*1*/}
:console.log
returns 自定义对象。{/*2*/}
:console.log
returns 相同的 自定义对象,即使我使用了Immutable.fromJS()
.{/*3*/}
:console.log
returns 自定义对象。{/*4*/}
:console.log
returnsmap = Immutable.fromJS()
,符合预期。
我在文档中找不到任何解释。
{/*EXPORTING CONSTRUCTOR*/}
export function MyObject() {
this.id = null;
this.name = '';
}
{/*EXPORTING RAW OBJECT*/}
export my_object = {
this.id = null;
this.name = '';
}
//in another file
//importing, and than:
let myConstructedObject = new MyObject();
let myRawObject = my_object;
{/*1*/} console.log(myConstructedObject) // => object
{/*2*/} console.log(Immutable.fromJS(myConstructedObject)) // => object ?!?!
{/*3*/} console.log(myRawObject) // => object
{/*4*/} console.log(Immutable.fromJS(myRawObject)) // => map (OK!)
我认为这个话题的人:
总结那个讨论,你不能只是 "Immutivize" 一个自定义对象,但你可以自己编写一个不可变对象,使用 Immutable.Record(使用纯 ImmutableJS)或 Map(使用 'extendable-immutable'图书馆。)