2017-10-10 21 views
0

Ajaxを使用してエンドポイントからJSONデータを受信して​​います。不変オブジェクトに基づいてレコードセットを作成する

const jsData = '[ {"x": 1, "y": 1}, {"x": 2, "y": 2}, … ]'; 

私は不変オブジェクトにデータを変換しています:

const imData = Immutable.fromJSON(jsData) 

私はこのエラーがUncaught TypeError: Cannot read property 'get' of undefinedスローされます。この不変オブジェクト

const Rec = Immutable.Record(imData) 
const rec = new Rec(); 

上のレコードセット・ベースを作成します。

注:jsDataをレコードセットのデフォルト値に直接渡さないのはなぜですか? 私はこれが可能であることを望みません:rec[0].x = 1

受信したデータを完全に不変のレコードセットに変換する正しい方法は何ですか?

答えて

0
  1. JSONデータサンプルが無効です。JSON。
  2. エラーを生成するコードサンプルは掲載していません。メッセージには Cannot read property 'get' of undefined.と表示され、サンプルではgetとは何も呼び出されません。

オブジェクトを使用してレコードを作成します。 https://facebook.github.io/immutable-js/docs/#/Record

レコードがJSオブジェクトに似ていますが、 許可文字列キーの特定のセットを強制し、デフォルト値を持っています。

const jsData = '[{"x":1,"y":1},{"x":2,"y":2}]'; 
const imData = JSON.parse(jsData) 
console.log(imData) 
const Rec = Immutable.Record(imData[0]) 
const rec = new Rec(); 

console.log(rec.get('x')); 

https://jsfiddle.net/sh637wsm/

関連する問題