source

Vuex: 이 개체에서 유일한 요소를 업데이트하려면 어떻게 해야 합니까?

goodcode 2022. 7. 26. 23:40
반응형

Vuex: 이 개체에서 유일한 요소를 업데이트하려면 어떻게 해야 합니까?

다른 스택 오버플로우 질문 덕분에 여기까지 왔습니다.기본적으로 새 어레이가 단일 ID를 업데이트하여 반환됩니다.하지만 나의store state왜 업데이트가 되지 않는가?이건 내 거야state오브젝트:

allProducts:[
            {
                "product_name": '',
                "code": '',
                "id": ''

            }
        ],

그리고 이것은 나의mutation.

UPDATE_PRODUCT : ({allProducts},payload) =>{
            let updatedProducts = allProducts.map(product => {
                if(product.id === payload.id){
                    return Object.assign({}, product, payload);
                }
                return product;
            })
            allProducts = updatedProducts;
        }

만약 내가console.log(updatedProducts)나는 완벽하게 좋아지고 있다.result하지만 나의allProducts는 갱신되지 않습니다.

놓치셨네요state변환방법의 첫 번째 파라미터로 지정합니다.

state:{
    allProducts:[
        {
            "product_name": '',
            "code": '',
            "id": ''

        }
    ]  
}

및 변환:

 UPDATE_PRODUCT : (state,payload) =>{
        let updatedProducts = state.allProducts.map(product => {
            if(product.id === payload.id){
                return Object.assign({}, product, payload);
            }
            return product;
        })
        state.allProducts = updatedProducts.slice();
    }

여기서 참조를 대체하고 원래 참조를 잃게 됩니다.

allProducts = updatedProducts;

대신 변이를 시켜야 합니다.

allProducts.length = 0;
Array.prototype.push.apply(allProducts, updatedProducts);

언급URL : https://stackoverflow.com/questions/54308211/vuex-how-can-i-update-the-only-element-from-this-object

반응형