2017-03-18 2 views
0

je remarquai que dans la pièce de code suivantePourquoi les tableaux dans les enregistrements Immutable.js sont-ils mutables?

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

class Task extends TaskRecord { 
} 

const task = new Task(); 

task.requiredFor est vraiment un tableau (appelant get('requiredFor') dans la classe Task donne le même résultat) et ne sont pas convertis en Immutable.List ... cette façon le dossier n'est pas immuable.

Pourquoi c'est comme ça? Comment régler ceci?

+3

Il est seulement le 'Immutable.Record' qui est immuable. Vous ne pouvez pas le réparer, c'est prévu. – zerkms

Répondre

0

On dirait que faire la magie dans le constructeur fait le travail:

class Task extends TaskRecord { 

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

}