我使用immer.js的Produce方法进行了此失败的测试:
it('should replace array reference in state', () => {
let state = {
someArray: [1],
};
const somArrayUpdate = [2, 3];
state = produce(state, draft => {
draft.someArray = somArrayUpdate;
});
console.log(state.someArray);
// update external array
somArrayUpdate.push(4);
// expect that the state array is not the same reference with the external array
console.log(state.someArray);
expect(state.someArray).not.toBe(somArrayUpdate);
});
您可以在此处查看失败的测试:
https://stackblitz.com/edit/jasmine-gwrbgh
我试图了解为什么这不起作用,以及如何使用immer.js执行阵列替换(文档AFAIK中没有相关示例)。