VueコンポーネントでmapActions
とか使うときに、名前空間をprops
やdata
から取得したかった。
で、以下のように書いてもthis
は存在しないのでエラー。
<script>
export default {
props: ['path'],
// エラー
computed: mapState(this.path, ['someState']),
// エラー
methods: mapActions(this.path, ['someAction'])
}
</script>
そんなときはオブジェクトを渡してやればOK。
<script>
export default {
props: ['path'],
computed: mapState({
someState (state) {
return state[this.path]['someState'];
}
}),
methods: mapActions({
someAction (dispatch) {
dispatch(this.path + '/someAction');
}
})
}
</script>