2017-03-05 6 views
1

状態を管理するためにReact for UI、状態を変更するためにRedutableを使用するアプリケーションをコーディングしていますが、私はを知りたいと思いますReactコンポーネントでImmutable.JSアクセサを使用しないようにするには、get()またはgetIn()のようにします。Reactコンポーネント内のImmutable.JS関数/アクセサの回避方法

私は、そのImmutable.JSアクセサを使用すると自分のReactコンポーネントに感染すると信じています。それを避ける方法は?

答えて

0

Immutable.JSアクセサーを避けてドット表記を使用する方法は、Immutable.JSのレコード構造を使用しています。

まず、テンプレートを作成する必要があります。

const MyTemplate = Record({ 
    id: 0, 
    name: '' 
}) 

...

case ContentFilterTypes.ADD_ITEM: 
    return { 
     listObjects : state.listObjects.push(new MyTemplate({ 
      id: action.item.id, 
      name: action.item.description, 
     })) 
    } 

をpresentionalでそれにアクセスするために、我々は同じように、私たちは情報を取得したい小道具を設定するだけで済みます:

<ContentFilterAvatar id={value.id} name={value.name} /> 
2

私はあなたがそれを不変にしておきたいなら、あなたがここでオプションの方法で多くをするつもりはないと思います。それをtoJSに変換することもできますが、純粋なコンポーネントを再レンダリングするためのオブジェクトIDの比較の利点を失うことになります。あなたの最善の策はおそらくあなたの鼻をつかんで、基本的にはJavaScript Mapのふりをすることでしょう。

これ以外にも、Immutable.jsに添付されていない場合は、seamless immutableなどのネイティブJavaScript配列やオブジェクトのように動作するようにしてください。あるいは、あなたは昔ながらのものになり、ちょうどObject.freeze()のものを手に入れることができます。

関連する問題