【发布时间】:2020-01-22 17:21:38
【问题描述】:
我正在将 Nuxt + Vuetify 用于电子商务应用程序。
有两个独立的组件 - 标题和购物车。
Header 组件包含一个按钮,单击该按钮将切换购物车的可见性。
<template>
<v-app-bar>
<v-btn @click="$store.commit('toggleCart')" icon>
<v-icon>mdi-cart</v-icon>
</v-btn>
</v-app-bar>
</template>
<script>
import { mapState, mapMutations } from "vuex";
export default {
name: "Header",
methods: {
...mapState(["cartOpen"])
}
};
</script>
在购物车组件中,我使用的是 Vuetify 的抽屉组件,默认情况下该抽屉组件会被隐藏并在单击标题中的按钮时显示。
<template>
<v-navigation-drawer v-model="cartOpen" app clipped right>Products in Cart</v-navigation-drawer>
</template>
<script>
import { mapState } from "vuex";
export default {
name: "Cart",
methods: {
...mapState(["cartOpen"])
}
};
</script>
这是我的商店 index.js 文件
export const state = () => ({
cartOpen: false
})
export const mutations = {
toggleCart(state, cartOpen) {
return cartOpen = !cartOpen;
}
}
现在,当我单击按钮时,开发者工具中会发生突变,但状态始终为 false。任何帮助表示赞赏。
【问题讨论】:
-
您是否尝试过在您的突变中使用状态对象? state.cartOpen = !state.cartOpen
标签: vuetify.js nuxt.js