programing

Vuex - 변환 중인 업데이트 개체

goodsources 2022. 7. 11. 21:33
반응형

Vuex - 변환 중인 업데이트 개체

사용자가 버튼을 클릭한 후 vuex 저장소의 데이터를 로컬 개체의 데이터로 교체합니다.하지만 나는 돌연변이에 갇혀있다.상세한 것에 대하여는, 이하에 몇개의 코드를 참조해 주세요.

사용자가 버튼을 클릭한 후 호출되는 메서드입니다.(this.tableview는 vuex 개체와 동일한 값을 가진 로컬 개체입니다.)

            updateVuexTableview() {
                // eslint-disable-next-line no-console
                console.log("Update Vuex Table view");
                this.updateTableview(this.tableview)
            }

이 방법에서는 vuex 액션이 호출됩니다.(updTableview는 삽입하는 새로운 데이터입니다.)

async updateTableview({commit}, updTableview) {
        const response = await axios.put(
            `http://localhost:3000/tableview`,
            updTableview
        );

        // eslint-disable-next-line no-console
        console.log(response.data);

        commit('updateTableviewMut', response.data);
    },

이것이 호출되는 돌연변이입니다.그게 내가 갇혀있는 곳이야.데이터를 터트렸다가 다시 밀어보려고 했지만, 지금까지 아무 것도 되지 않습니다.

    updateTableviewMut: (state, updTableview) => {
        state.tableview.push(updTableview)
    },

여기가 제 주(州)입니다.

const state = {
    tableview: {
        "thema_c": true,
        "status_c": true,
        "priority_c": true,
        "custom1_c": true,
        "custom2_c": true,
        "customFieldName1": "Custom1",
        "customFieldName2": "Custom2"
    },
};

다음 방법으로 개체를 업데이트할 수 없습니다..push개체를 재할당하거나 특정 필드를 설정해야 합니다.코드를 다음과 같이 변경합니다.키 값 쌍을 추가하는 경우 다음을 수행할 수 있습니다.

updateTableviewMut: (state, updTableview) => {
  state.tableview['keyname'] = updTableview
}

또는 개체를 재할당하려는 경우 다음을 수행할 수 있습니다.

updateTableviewMut: (state, updTableview) => {
  state.tableview = updTableview
}

언급URL : https://stackoverflow.com/questions/60258149/vuex-update-object-in-mutation

반응형