【问题标题】:TypeError: state.categoriesState.push is not a function VUEXTypeError: state.categoriesState.push 不是 VUEX 函数
【发布时间】:2019-03-06 03:34:17
【问题描述】:

我有这个错误,但我不明白原因,你能指导我吗?

错误:

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);
        },
}

【问题讨论】:

    标签: javascript vuejs2 vuex


    【解决方案1】:

    很可能您的变量 categoriesState 是一个 object 而不是数组。您应该首先通过执行变量 categoriesState 的 typeOf 控制台来检查。

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

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

    【讨论】:

    • 它是一个数组,但我不知道为什么它被视为一个对象,我只是将名称更改为 vuex 的那种状态并且它起作用了。谢谢。
    • 我也做了和你一样的事情,而且效果很好@OscarDev
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-12-13
      • 2020-06-29
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 2021-06-05
      • 2019-10-03
      相关资源
      最近更新 更多