mergeDeep不可变Map()时如何修复List()过滤?

时间:2019-01-17 05:56:35

标签: javascript immutable.js

我正在尝试在mergeDeep Map()时过滤活动列表,但是看不到返回值的变化。活动列表()仍然相同。我可以推送或映射活动List()并在updatedChecklist中查看已更改的活动列表,但无法过滤。

import { Map, List } from "immutable"

const state = Map()
const checklist = state.merge({
  research: {},
  questionnarie: { activity: [{ id: "1" }], complete: true, info: {}},
})

const updatedChecklist = ["questionnarie"].reduce((cheklist, type) => {
  const activity = checklist.getIn([type, "activity"])
  return checklist.mergeDeep({
    [type]: {
      activity: activity.filter(function(i) {
        console.log(i.get("id"))
        return i.get("id") !== "1"
      }),
      complete: false,
    },
  })
}, checklist)

我希望获取带有活动列表的updatedChecklist,其中没有Map({id:1})。

0 个答案:

没有答案