2017-03-18 8 views
0

ich bemerkt, dass in dem folgenden CodeWarum Arrays in Immutable.js-Datensätzen änderbar sind?

const TaskRecord = new Immutable.Record({ 
    name: '', 
    requiredFor: [], 
}); 

class Task extends TaskRecord { 
} 

const task = new Task(); 

task.requiredFor ist wirklich ein Array (get('requiredFor') in der Task-Klasse ergibt das gleiche Ergebnis Aufruf) und erhält nicht zu Immutable.List ... auf diese Weise umgewandelt Die Aufzeichnung ist nicht unveränderbar.

Warum ist es so? Wie behebe ich das?

+3

Es ist nur die 'Immutable.Record' die unveränderlich ist. Sie können es nicht beheben, es ist beabsichtigt. – zerkms

Antwort

0

Scheint, wie Magie macht in Konstruktor macht den Job:

class Task extends TaskRecord { 

    constructor(values) { 
     super(Immutable.fromJS(values)); 
    } 

} 
Verwandte Themen