Использование immer.js - переназначение черновой ссылки на массив приводит к той же самой ссылке на массив в состоянии - PullRequest
3 голосов
/ 21 марта 2019

У меня есть этот неудачный тест с использованием метода продукта immer.js:

     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

Iя пытаюсь понять, почему это не работает, а также как выполнить замену массива с помощью immer.js (в документации AFAIK нет соответствующих примеров).

...