programing

Vuex 비활성 mapGetters(인수가 전달됨)

goodsources 2022. 8. 8. 20:07
반응형

Vuex 비활성 mapGetters(인수가 전달됨)

스토어에 다음과 같은 인수를 전달하는 getter가 많이 있습니다.

this.$store.getters['getSomeThing'](this.id)

그리고 최적의 사용법을 찾을 수 없습니다.mapGetters인수의 전달을 통해 반응성을 유지할 수 있습니다.제가 찾은 제안 중 하나는 getter를 매핑하고 인수를 mounted로 전달하는 것입니다.

computed: {  
  ...mapGetters([
    'getSomeThing'
  ])
},
mounted () {
  this.getSomeThing(this.id)
}

마운트된 상태에서 상태 변경만 확인할 수 있기 때문에 실제로는 최적이 아닌 것으로 보입니다.논쟁을 게터에게 전달하면서 반응성을 가장 잘 유지하는 방법에 대한 제안이 있습니까?위의 코드와 일치하는 getter의 예를 다음에 나타냅니다.

getSomeThing: (state) => (id) => {
  return state.things.find(t => { return t.id === id })
}

다음은 제가 가지고 있는 프로젝트의 일부입니다.

    computed: {
        ...mapGetters('crm', ['accountWithId']),
        account() {
            return this.accountWithId(this.$route.params.id)
        }
    },

이렇게 하면this.account파라미터에 의존하여 반응합니다.

그래서...

computed: {  
  ...mapGetters([
    'getSomeThing'
  ]),
  thing() {
    return this.getSomeThing(this.id)
  }
},

언급URL : https://stackoverflow.com/questions/54116410/vuex-reactive-mapgetters-with-arguments-passed-through

반응형