programing

Vue 저장소의 변환에 두 번째 매개 변수를 보낼 수 없습니다.

goodcopy 2022. 7. 31. 22:12
반응형

Vue 저장소의 변환에 두 번째 매개 변수를 보낼 수 없습니다.

이런 멋진 돌연변이 JS파일이 있어요

export default {
  UPDATE_DATA: (state, data, meta) => {
    state.dataTable = data;

    if (meta === undefined)
      return;

    state.activeDataRow = meta;
  }, ...
}

그것은 다음과 같은 방법으로 다른 동작에 의해 호출됩니다.

context.commit("UPDATE_DATA", Map.table(payload.type, data));
context.commit("UPDATE_DATA", Map.table(payload.type, data), meta);

액션에서 전송되는 메타를 확인했는데 확실히 정의되지 않았습니다.하지만 돌연변이의 메타를 확인해보니 그렇네요! 왜요?이 문제를 해결하려면 어떻게 해야 하나요?

vuex docs는 두 번째 인수로 payload를 보내는 것을 권장합니다.

대부분의 경우 payload는 여러 필드를 포함할 수 있도록 오브젝트여야 합니다.또한 기록된 변환이 보다 상세하게 설명됩니다.

payload에서는 다음과 같이 호출할 수 있습니다.

context.commit("UPDATE_DATA", {data: Map.table(payload.type, data), meta: meta});

당신의 돌연변이는 다음과 같습니다.

export default {
  UPDATE_DATA: (state, payload) => {
    state.dataTable = payload.data;

    if (payload.meta === undefined)
      return;

    state.activeDataRow = payload.meta;
  }, ...
}

돌연변이를 호출하는 대체 방법도 있습니다. 바로 객체 스타일 커밋입니다.오브젝트를 커밋으로 전달할 수 있습니다.유형은 변환명으로 다음과 같습니다.

context.commit({
     type:: "UPDATE_DATA", 
     data: Map.table(payload.type, data), 
     meta: meta
});

언급URL : https://stackoverflow.com/questions/41201805/cant-send-in-a-second-parameter-to-the-mutation-in-vue-store

반응형