Mapowanie na rekordach Immutable.js.

Sep 17 2020

Jak najlepiej zastosować funkcje, takie jak mapa, gdy masz rekord?

To najlepsze, co do tej pory mam:

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)

Odpowiedzi

dube Sep 24 2020 at 15:08

Rekordy nie mają niektórych funkcji API kolekcji withMutations, więc myślę, że twoje podejście jest w porządku. Chyba pytałeś, bo wygląda dziwnie, więc może wolisz ten:

Możesz użyć mergeWith, co pozwoli ci zdefiniować funkcję scalającą, po prostu przekazać ten sam rekord, co druga kolekcja:

const someRecordUpdated = someRecord.mergeWith(
    (originalVal, passedInVal) => originalVal + 1, someRecord);