IT이야기

Vuex 반환 부울?

cyworld 2022. 4. 26. 22:03
반응형

Vuex 반환 부울?

hasPermission이라는 템플릿을 끈으로 불러올 수 있는 기능을 만들려고 한다.하지만 내가 부르면 vuex는 약속의 대상을 돌려준다.부울을 돌려줄 방법이 없을까?

hasPermission({ state }, permission) {
  for (var i = 0; i < state.user.permissions.length; i++) {
    var perm = state.user.permissions[i];
    if (perm.name == permission) {
      return true;
    }
  }
  return false;
}

v-if="hasPermission("테스트")처럼 부르고 그 반응을 바탕으로 보여 주고 싶다.하지만 나는 이것을 하는 데 약간 어려움을 겪고 있다.당신이 할 수 있는 어떤 충고를 하기를 바란다 :)

만들 수 있다hasPermission메서드 스타일의 게이터:

getters: {
  hasPermission: (state) => (permission) => {
    for (var i = 0; i < state.user.permissions.length; i++) {
      var perm = state.user.permissions[i];
      if (perm.name == permission) {
        return true;
      }
    }
    return false;
  }
}

사용하다mapGetters구성 요소에 포함하려면:

import { mapGetters } from 'vuex';
computed: {
  ...mapGetters(['hasPermission'])
}

템플릿에 다음과 같이 사용하십시오.

v-if="hasPermission('test')"

이 게터들은 보통 게터들처럼 캐시되지 않는다는 것을 명심해라. 하지만 행동 또한 그렇지 않다.

여기 데모가 있다.

참조URL: https://stackoverflow.com/questions/61242217/vuex-return-boolean

반응형