2016-12-01 1 views
6

나는 호출되는 함수에 매개 변수를 전달하고자하는 다음과 같은 구절을... mapActions (...)를 사용하여 매핑 된 함수에 인수를 전달하는 방법은 무엇입니까?

export default { 
    methods: { 
    ...mapActions(["updateData", "resetData"]); 
    } 
} 

을 고려. ...mapAction() 호출을 유지하면서 제대로 수행하는 방법이 확실하지 않아서 다음을 다시 작성해야했습니다.

export default { 
    methods: { 
    // ...mapActions(["updateData", "resetData"]) 
    updateData: function() { this.$store.dispatch("updateData", "names") }, 
    resetData: function() { this.$store.dispatch("resetData"); } 
    } 
} 

유일한 방법입니까?

답변

7

매개 변수를 호출하는 곳으로 매개 변수를 전달하면됩니다. 액션에서 사용할 수있는 하나의 매개 변수 만 보낼 수 있습니다.

<button @click=updateData({data1: 1, data2: 2})> 

과 vuex 저장소 : 예를 들어

mapActions를 사용할 때 당신은 당신이 좋아하는 그것을 호출 할 수있는 특별한 아무것도 할 필요가 없습니다

const actions = { 
    updateData: (state, data) => { 
    //You will get passed parameter as data here 
    }, 

을하고 당신은 여전히 ​​mapActions을 사용할 수 있습니다 :

export default { 
    methods: { 
    ...mapActions(["updateData", "resetData"]); 
    } 
} 

작동하는 사람 here을 참조하십시오. OU는 경고 : 여기


에 매개 변수를 전달 볼 수있는 vuex repo

export function mapActions (actions) { 
    const res = {} 
    normalizeMap(actions).forEach(({ key, val }) => { 
    res[key] = function mappedAction (...args) { 
     return this.$store.dispatch.apply(this.$store, [val].concat(args)) 
    } 
    }) 
    return res 
} 

에서 mapActions의 구현 당신은 그것이 args 통과 소요 파견 함수의 두 번째 인수로두고 볼 수는 .

관련 문제