基于不可变对象创建记录集

时间:2017-10-10 09:31:07

标签: immutable.js

我使用Ajax从端点接收JSON数据。

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

我正在将数据转换为不可变对象:

const imData = Immutable.fromJSON( jsData )

我想基于这个不可变对象

创建一个记录集
const Rec = Immutable.Record( imData)
const rec = new Rec();

抛出此错误Uncaught TypeError: Cannot read property 'get' of undefined

注意:为什么我没有直接将jsData作为记录集的默认值传递? 我不希望这是可能的:rec[0].x = 1

将接收到的数据转换为完全不可变的记录集的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

  1. 您的JSON数据样本无效JSON。
  2. 您没有发布产生错误的代码示例。消息说 public class Search { public List<BaseSearch> List { get; set; } } public abstract class BaseSearch { string label; protected List<Comparator> comparators; public string Label { get { return label; } set { label = value; } } public List<Comparator> Comparators { get { return comparators; } set { comparators = value; } } public BaseSearch() { comparators = new List<Models.Comparator>(); } } public class TextSearch : BaseSearch { string _value; public string Value { get { return _value; } set { _value = value; } } public TextSearch() : base() { comparators.Add(new Comparator() { Value = -1, Text = Resources.Choose }); comparators.Add(new Comparator() { Value = 1, Text = Resources.StartWith }); comparators.Add(new Comparator() { Value = 2, Text = Resources.Contains }); } } 在您的示例中,您不会在任何内容上致电xhr.setRequestHeader('Authorization', 'Bearer ' + variable);
  3. 使用对象创建记录。 https://facebook.github.io/immutable-js/docs/#/Record

      

    记录类似于JS对象,但强制执行一组特定的记录   允许使用字符串键,并具有默认值。

    Cannot read property 'get' of undefined.

    https://jsfiddle.net/sh637wsm/