Redux reducer 没有更新 immutable.js Redux store

Redux reducer is not updating the immutable.js Redux store

我似乎无法修改 immutable.js 记录,它是我应用程序的 redux 存储。

let makeVepo: RecordFactory<any> = Record({
  product: new makeProduct(),
  menu: new makeMenu(),
  formControls: new makeFormControls(),
  some: 10
})

export const vepo = new makeVepo()

vepo.set('some', 200)

vepo.some 没有更新到 200,它保持 10

我的 redux store 不会从 reducer 更新。

应该可以。当我在这里设置断点时:

这里我是在控制台中操作状态,并没有持久化:

您正在尝试改变不可变对象。当您执行 vepo.set('some', 200) 时,它不会修改 vepo,它 returns 一个具有您分配的值的新对象。

你可以试试这个:

const { Record } = require('immutable');

const makeVepo = Record({
  product: 'function',
  menu: 'function',
  formControls: 'function',
  some: 10
})

const vepo = new makeVepo()

const newObject = vepo.set('some', 200)
console.log(vepo.toJS()) // `some` is still 10
console.log(newObject.toJS()) // `some` is 200

npm runkit 或您的本地环境中尝试一下。新对象包含更新后的值。

注意:我修改了代码,因此它可以 运行 隔离。