programing

vuex '상수' 명명된 작업을 변수와 함께 참조하려면 어떻게 해야 합니까?

nicescript 2023. 6. 11. 21:55
반응형

vuex '상수' 명명된 작업을 변수와 함께 참조하려면 어떻게 해야 합니까?

vuex 스토어에 다음과 같은 작업이 있습니다.

 [FETCH_ADAM_BROWN_LIST](state)({commit}) {
     /* Action logic */
 },

다음과 같은 변수를 사용하여 유사한 이름 작업(예: FETCH_CHRIS_MATHISON_LIST)에 액세스하고 싶습니다.

this.$store.dispatch(`FETCH_${this.person}_LIST`);

그러나 이 경우 오류가 발생합니다.

VM90646:37 [vuex] unknown action type: FETCH_ADAM_BROWN_LIST

그러나 상수를 지정하면 작동합니다.

this.$store.dispatch(FETCH_ADAM_BROWN_LIST);

변수가 있는 '일정한' 명명된 작업에 액세스하려면 어떻게 해야 합니까?

mapActions를 사용해 보셨습니까?그건 당신이 원하는 것에 효과가 있을 수 있습니다.유용한 링크:Vue map 작업을 구성하는 방법

Vuex Store에서 이 구조를 사용합니다.내 작업의 대부분은 연결된 문자열을 인수로 사용하여 발송됩니다.하지만 나의 행동은 다음과 같습니다.

setCurrentUser: function ({ dispatch, commit, getters, rootGetters }, userDB) {
  commit('setCurrentUser', userDB)
  dispatch('resetDashboards', userDB.dashboards)
}

그러면 다음과 같이 발송할 수 있습니다.

let type = 'User'
this.$store.dispatch('setCurrent' + type)

당신의 코드에 이상한 점이 있나요?제거합니다.(state)cause 액션 수신context당신의 경우, 당신이 파람에서 파괴하고 있는 물체. ({commit}).

이렇게 설정하고 이게 잘 되는지 알려주세요.

[FETCH_ADAM_BROWN_LIST]({commit}) {
     /* Action logic */
 },

당신이 관찰한 바와 같이, 당신이 합격했을 때FETCH_${this.person}_LIST로.dispatch전송된 작업 유형은 연결된 상수 이름이며 상수 변수의 실제 값이 아닙니다.

상수 변수의 실제 값을 가져오려면 함수를 사용할 수 있습니다.

MDN 문서에서:

의 주장은eval()함수는string문자열이 식을 나타내는 경우 eval()은 식을 평가합니다.

다음과 같이 사용할 수 있습니다.

const FETCH_ADAM_BROWN_LIST = 'customAction';

const person = 'ADAM_BROWN';
const actionToDispatch = `FETCH_${person}_LIST`;

console.log(eval(actionToDispatch)); // customAction

사용에 주의하십시오.eval그래도.입력한 내용을 전달하기 전에 삭제된 것이 확실하다면 문제가 없을 것입니다.

언급URL : https://stackoverflow.com/questions/54073787/how-can-i-reference-vuex-constant-named-actions-with-variables

반응형