vue findIndex不是函数

时间:2018-07-11 04:04:35

标签: javascript vue.js cart vuex

在这里File "/home/savithri/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile execfile(filename, namespace) File "/home/savithri/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "/home/savithri/Documents/MSRIT_MTECH_2018/MTECH_PROJECT_MAIN/data/Flicker30k_Dataset/rr.py", line 3, in <module> for i,line in data: TypeError: iteration over a 0-d array 函数出现错误

findIndex()

cartId具有rowId和qty以及sizeVal和图像

方法

Uncaught (in promise) TypeError: state.carts.findIndex is not a function

    updateCart() {
        this.$store.dispatch('updateCart', this.cartId)
    }

Vue检查推车

state: {
    carts: [],
},

变异

031e0275ef3746070e80d81199bd2580:Object {
    id:1
    name:"T-Shirt"
    options:Object {
        image:"products\July2018\4TXSMgf6eAdrOlaxAMiX.jpg"
    }
    size:"l"
    price:551
    qty:2
    rowId:"031e0275ef3746070e80d81199bd2580"
    subtotal:1102
    tax:115.71
}

在我的行动中就是工作

操作

    updateCart(state, rowId) {
        const index = state.carts.findIndex(cart => {cart.rowId == rowId});
        // console.log(index)
            state.carts.splice(index, 1, {
                'qty': cart.qty,
                'size': cart.sizeVal,
            })
    },

现在我需要在state.carts中更新购物车的错误 需要帮助的人,为什么它会给我错误

谢谢

3 个答案:

答案 0 :(得分:0)

您的state.carts是一个对象,而不是数组。 findIndexarray method

  

findIndex()方法返回满足提供的测试功能的数组中第一个元素的索引。否则返回-1。

答案 1 :(得分:0)

findIndex是ES6数组功能,请确保您的浏览器支持它,否则您应该对其应用polyfill或transbile插件(如babel.js)。

答案 2 :(得分:0)

将PolyFill用作在Vue中全局导入的混合。

 const findIndex = (values, expectedValue) => {
    let selectedIndex;
    const valuePresent = values.some((value, index) => {
      selectedIndex = index;
      return value === expectedValue;
    });
    return valuePresent ? selectedIndex : -1;
  };