TypeError:state.categoriesState.push不是函数VUEX

时间:2019-03-06 03:34:18

标签: javascript vuejs2 vuex

我有此错误,但我不明白原因,您能指导我吗?

错误:

  

TypeError:state.categoriesState.push不是函数

我的代码:

state.js

export default {
    categoriesState: []
}

mutations.js

export function setCategories(state, category){
    state.categoriesState.push(category);    
};

从我的组件中调用** VUEX :**

methods: {
...mapMutations('cat', ['setCategories']),

        addCategoriesToVuex(category){
            this.setCategories(category);
        },
}

2 个答案:

答案 0 :(得分:1)

您的变量 categoriesState 很可能是对象,而不是数组。您应该首先通过对变量 categoriesState 的typeOf进行控制台检查。

export function setCategories(state, category){
      console.log(typeOf(state.categoriesState));
    //state.categoriesState.push(category);    
};

您可以使用set方法向vue中的对象添加新属性。

答案 1 :(得分:1)

我遇到了同样的问题,是因为 vuex-persistedstate 包。正如@OscarDev 提到的,更改变量名有帮助。这是因为persistedstate在你写代码的时候保存了变量的类型。 所以清除持久状态缓存也有帮助。