2017-03-07 9 views
1

私はImmuatable.jsを使用していますが、Immutable.Recordを拡張して、同じように動作するクラスを持っていますが、デフォルトのプロパティと関数を追加しました。Immutable.jsでレコードを拡張する

ソースを見ると、Record.jsはKeyedCollectionを拡張してコンストラクタから関数を返すES6クラスです。

https://github.com/facebook/immutable-js/blob/master/src/Record.js

私は実際にそれを行うの副作用を理解していません。

基本的に私は、私はこれを行うことができますFooRecordクラスたい:

class FooifiedRecord extends FooRecord({ 
    name: '', 
}){ 
    sayMyName(){ 
    return this.name; 
    } 
}; 

をそして、それはこれと同等です:

class FooifiedRecord extends Immutable.Record({ 
    name: '', 
    foo: '', 
}) { 
    doFoo(){ 
    return this.foo + ' bar'; 
    } 
    sayMyName(){ 
    return this.name; 
    } 
} 

しかし、私は正しい構文についてはよく分かりません。

EDIT:Immutable.Recordの基本的な使い方をカバーするHow to construct subclasses of Immutable.Record?と似ていません。私はそれをどのように拡張するのだろうかと思います。

+0

[Immutable.Recordのサブクラスを構築するには?](HTTPの可能性のある重複:// 34922321/how-to-construct-subclasses-of-immutable-record) – jdkschang

答えて

1

あなたは新しいであなたの基本クラスをインスタンス化する予定がない場合は、あなたが何ができるかjustinko recommends here

import { Record } from 'immutable' 

const Base = defaultValues => class extends Record({ 
    id: undefined, 
    links: {}, 
    errors: {}, 
    ...defaultValues 
}) { 

} 

class User extends Base({ 
    firstName: undefined, 
    lastName: undefined 
}) { 
    fullName() { 
    return this.firstName + ' ' + this.lastName 
    } 
} 
関連する問題