【发布时间】:2018-12-03 04:58:18
【问题描述】:
例如,我有一个名为 App.vue 的文件,其中有导航抽屉组件。我有一个带有工具栏组件的名为 Home.vue 的文件。问题是我需要从 Home.vue 的工具栏组件切换导航抽屉状态(true 或 false)(此外,导航抽屉组件在 Home.vue 中呈现)。下面的代码不会返回任何错误,也不会更改导航抽屉的可见性。此外,如果在 store.js 中手动设置状态,导航抽屉会跟随它。有人可以帮忙吗?
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
drawer: false
},
mutations: {
toggleDrawer: function(state) {
return state.drawer = !state.drawer;
}
},
actions: {
toggleDrawer({ commit }) {
commit('toggleDrawer');
}
},
getters: {
active: (state) => {
return state.drawer;
}
}
})
App.vue
<v-navigation-drawer v-model="drawer"> ... </v-navigation-drawer>
<script>
import store from './store'
export default {
data: function() {
return {
drawer: this.$store.state.drawer
}
}
}
</script>
首页.vue
<v-toolbar-side-icon @click="$store.commit('toggleDrawer')"> ... </v-toolbar-side-icon>
<script>
import store from '../store'
export default {
data: function() {
return {
drawer: this.$store.state.drawer // Seems like I don't need it here
}
}
}
</script>
【问题讨论】:
-
开发工具显示什么?点击图标时
state.drawer会更新吗?
标签: javascript vue.js vuejs2 vue-component vuex