我正在尝试使用 Redux,我正在遵循的教程使用 ImmutableJs。我对 ImmutableJs 完全陌生,我只是通过 API 文档开始工作。我的练习应用程序比教程复杂得多,所以我有点偏离了道路,可能迷路了。
每当我使用 Map.update() 方法时,我都无法找到成功测试代码的方法。这是我写的一个测试,试图找出问题所在:
import chai, {expect} from 'chai';
import chaiImmutable from 'chai-immutable';
import {List, Map} from 'immutable';
chai.use(chaiImmutable);
describe("Immutable Test Issues", () => {
it("should present accurate immutable equality", () => {
// -- Maps with Lists match just fine
const a1 = Map({ test: 1, args: List([1, 2]) });
const a2 = Map({ test: 1, args: List([1, 2]) });
expect(a1).to.equal(a2); // pass
// -- Maps with Lists of Maps match just fine
const ba = { pid: 100, arg: 2 };
const bb = { pid: 101, arg: 5 };
const b1 = Map({ test: 1, args: List([Map(ba), Map(bb)]) });
const b2 = Map({ test: 1, args: List([Map(ba), Map(bb)]) });
expect(b1).to.equal(b2); // pass
// -- using Map.update()
const ea = { pid: 100, arg: 2 };
const eb = { pid: 101, arg: 4 };
const e1 = Map({ test: 1 }).update('args', List(), l => l.push([Map(ea), Map(eb)]));
const e2 = Map({ test: 1 }).update('args', List(), l => l.push([Map(ea), Map(eb)]));
expect(e1).to.equal(e2); // fail
expect(e1.get('args')).to.equal(List().push([Map(ea), Map(eb)])); // fail
});
});
我正在使用以下内容:
- 节点:v6.3.1 和 v4.4.0(独立工作站)
- 摩卡:v3.0.2
- 柴:v3.5.0
- 柴不可变:v1.6.0
- 不可变:v3.8.1
- 通天塔核心:v6.13.2
- babel-preset-es2015: 6.13.2
到目前为止,我的其他测试都通过了,只有当我使用时,我才会遇到Map.update()
这个问题。我还没有在教程中看到使用此方法的任何地方,但是,它似乎非常基础,我希望它能够工作。