Я пытаюсь сделать навигацию активной при нажатии на нее, добавив класс nav-selected
. Я видел другие подобные вопросы, но они относятся к v-model
, поэтому они не помогли мне.
Мне нужно убедиться, что он добавлен в магазин, чтобы я всегда мог видеть, какая страница активна даже после обновления. Однако я получаю следующую ошибку:
Navigation.vue:
<template>
<v-container>
<v-layout align-center>
<!-- Logo -->
<v-flex sm2>
<img src="http://beam.space/img/icon.png" height="30px">
</v-flex>
<!-- Navigation -->
<v-flex sm8>
<v-layout wrap justify-center>
<v-flex sm2>
<router-link to="/myspaces">
<h2 @click="setActiveNav(0)" :class="{'nav-selected': activeNavigation === 0}" class="nav-text">My Spaces</h2>
</router-link>
</v-flex>
<v-flex sm2>
<router-link to="/inspirations">
<h2 @click="setActiveNav(1)" :class="{'nav-selected': activeNavigation === 1}" class="nav-text">Inspirations</h2>
</router-link>
</v-flex>
</v-layout>
</v-flex>
<v-flex sm2>
<p>profile</p>
</v-flex>
</v-layout>
</v-container>
</template>
<script>
import { mapState } from 'vuex';
export default {
name: "navigation",
computed: {
...mapState([
'activeNavigation'
])
},
methods: {
setActiveNav(activeNav) {
this.activeNavigation = activeNav;
this.store.commit('setActiveNavigation', this.activeNavigation);
}
}
}
</script>
<style scoped>
</style>
Store.js:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
export default new Vuex.Store({
state: {
activeNavigation: 0
},
getters: {
},
mutations: {
// Set Active navigation on click.
setActiveNavigation(state, id) {
state.activeNavigation = id;
}
},
// actions zijn a sync
actions: {
}
});