【发布时间】:2021-10-15 15:52:59
【问题描述】:
我有一个带有 Vuex 商店的 NuxtJS 网站。我有一个根状态和一个位于 store/shop/cart/state.ts 的模块,其 store/shop/cart/mutations.ts 文件看起来像这样。
import { MutationTree } from 'vuex';
import { CartState } from './state';
import { Cart } from '~/types/Cart';
export enum CartMutations {
SET_CART = 'SET_CART',
}
const mutations: MutationTree<CartState> = {
[CartMutations.SET_CART](
state: CartState,
payload: { cart: Cart }
) {
state.cart = payload.cart;
},
};
export default mutations;
在我的middlewares 中,我想像这样提交突变。
store.commit(CartMutations.SET_CART, cart);
但是,由于命名空间,该操作被命名为shop/cart/SET_CART。所以我必须这样做,这不是最好的,因为我不能使用我的枚举。
store.commit('shop/cart/SET_CART', cart);
有人也遇到过这种情况吗?我想知道一个干净的解决方案来解决这个问题,同时保留命名空间。
【问题讨论】:
标签: typescript vue.js nuxt.js vuex