映射 Immutable.js 条记录
Mapping over Immutable.js Records
当你有记录时,你如何最好地应用地图等功能?
这是迄今为止我得到的最好的:
const FooRecord = Record({a: 0, b: 0})
const someRecord = FooRecord({a: 1, b: 2})
const someSeq = someRecord.toSeq().map(x => x + 1)
const someRecordUpdated = FooRecord(someSeq)
记录缺少一些集合 api 功能,例如 withMutations
,所以我想您的方法非常好。我猜你问是因为它看起来很奇怪,所以也许你更喜欢这个:
您可以使用 mergeWith
,它让您定义一个合并函数,只需传入与第二个集合相同的记录:
const someRecordUpdated = someRecord.mergeWith(
(originalVal, passedInVal) => originalVal + 1, someRecord);
当你有记录时,你如何最好地应用地图等功能?
这是迄今为止我得到的最好的:
const FooRecord = Record({a: 0, b: 0})
const someRecord = FooRecord({a: 1, b: 2})
const someSeq = someRecord.toSeq().map(x => x + 1)
const someRecordUpdated = FooRecord(someSeq)
记录缺少一些集合 api 功能,例如 withMutations
,所以我想您的方法非常好。我猜你问是因为它看起来很奇怪,所以也许你更喜欢这个:
您可以使用 mergeWith
,它让您定义一个合并函数,只需传入与第二个集合相同的记录:
const someRecordUpdated = someRecord.mergeWith(
(originalVal, passedInVal) => originalVal + 1, someRecord);