如何设置默认值
How to set a default value
下面是我如何扩展 Immutable.Record
import Immutable from 'immutable';
const DATA_DEFAULTS = {
id: String,
data: String,
ref_id: String,
};
export default class Data
extends Immutable.Record(DATA_DEFAULTS) {}
如果 json 表示不包含 ref_id
,那么当我尝试在 Chrome devtool 的控制台中打印该字段的值时,我将得到:
> data.ref_id
String() { [native code] }
我认为这就是我无法过滤掉列表中 ref_id
为空的实体的原因
a = [] // a list of data
b = a.filter(x => x.ref_id != '') // b is the same as a
我想它可以通过以下任一方式修复:
当 json 数据
中缺少字段时,为 Immutable.Record
实例中的字段设置默认值
用另一种方式检测实例中是否没有设置字段
对于第二种方法,我已经尝试过,例如 data.has('ref_id')
,它总是报告 true
,无论该字段是否具有任何有效值。
我的问题:
1) 我可以在 Immutable.Record
中设置默认值吗?
2) 如何筛选 Immutable.Record
中可能存在或不存在的字段
3) 在 Immutable.Record
的实例中测试字段中是否存在有效值的正确方法是什么?
您明确地将每个字段的默认值设置为 函数 String
。 String
在这里不是数据类型,如果那是您的想法。你似乎想要的是
const DATA_DEFAULTS = {
id: '',
data: '',
ref_id: '',
};
1) Can I set a default value in a Immutable.Record?
正如您所做的那样,您只需要设置正确的默认值即可。
2) How to filter on field that may or may not exist in the Immutable.Record
记录中的字段始终存在。来自 docs:
Records always have a value for the keys they define. removeing a key from a record simply resets it to the default value for that key.
3) What is the right way to test the existence of valid value in a field in an instance of Immutable.Record
?
您可以使用您知道不会明确分配给该字段的默认值。这可能是 null
或一个符号。
下面是我如何扩展 Immutable.Record
import Immutable from 'immutable';
const DATA_DEFAULTS = {
id: String,
data: String,
ref_id: String,
};
export default class Data
extends Immutable.Record(DATA_DEFAULTS) {}
如果 json 表示不包含 ref_id
,那么当我尝试在 Chrome devtool 的控制台中打印该字段的值时,我将得到:
> data.ref_id
String() { [native code] }
我认为这就是我无法过滤掉列表中 ref_id
为空的实体的原因
a = [] // a list of data
b = a.filter(x => x.ref_id != '') // b is the same as a
我想它可以通过以下任一方式修复:
当 json 数据
中缺少字段时,为 用另一种方式检测实例中是否没有设置字段
Immutable.Record
实例中的字段设置默认值
对于第二种方法,我已经尝试过,例如 data.has('ref_id')
,它总是报告 true
,无论该字段是否具有任何有效值。
我的问题:
1) 我可以在 Immutable.Record
中设置默认值吗?
2) 如何筛选 Immutable.Record
3) 在 Immutable.Record
的实例中测试字段中是否存在有效值的正确方法是什么?
您明确地将每个字段的默认值设置为 函数 String
。 String
在这里不是数据类型,如果那是您的想法。你似乎想要的是
const DATA_DEFAULTS = {
id: '',
data: '',
ref_id: '',
};
1) Can I set a default value in a Immutable.Record?
正如您所做的那样,您只需要设置正确的默认值即可。
2) How to filter on field that may or may not exist in the Immutable.Record
记录中的字段始终存在。来自 docs:
Records always have a value for the keys they define. removeing a key from a record simply resets it to the default value for that key.
3) What is the right way to test the existence of valid value in a field in an instance of
Immutable.Record
?
您可以使用您知道不会明确分配给该字段的默认值。这可能是 null
或一个符号。