总是报这个错误this.cartList.forEach is not a function

来源:9-6 加入购物车功能实现

stark_wang

2017-10-26


warn @ vue-router.esm.js?880d:16

vue.esm.js?65d7:479 [Vue warn]: Error in render function: "TypeError: this.cartList.forEach is not a function"


found in


---> <Cart> at /Users/wangshudong/item/v18dyy/src/views/Cart.vue

       <App> at /Users/wangshudong/item/v18dyy/src/App.vue

         <Root>

warn @ vue.esm.js?65d7:479

vue.esm.js?65d7:566 TypeError: this.cartList.forEach is not a function

    at VueComponent.checkedCount (Cart.vue?8200:194)

    at Watcher.get (vue.esm.js?65d7:2881)

    at Watcher.evaluate (vue.esm.js?65d7:2988)

    at VueComponent.computedGetter [as checkedCount] (vue.esm.js?65d7:3265)

    at VueComponent.checkAllFlag (Cart.vue?8200:190)

    at Watcher.get (vue.esm.js?65d7:2881)

    at Watcher.evaluate (vue.esm.js?65d7:2988)

    at VueComponent.computedGetter [as checkAllFlag] (vue.esm.js?65d7:3265)

    at Object.get (vue.esm.js?65d7:1677)

    at Proxy.render (Cart.vue?371f:207)

handleError @ vue.esm.js?65d7:566


写回答

2回答

蓝草

2018-01-12

checkedCount() {
	let i = 0
	if(this.cartList.length > 0) {
		this.cartList.forEach((item) => {
			if(item.checked == '1') i++
		})
	}
	return i
},

加一个判断就好了,可能购物车列表数据加载的时间慢一些,所以在没获取到数据之前cartlist的长度是0

0
1
stark_wang
非常感谢!
2018-01-12
共1条回复

河畔一角

2017-10-27

说明你的cartList没有取到值,是空的,检查一下

0
1
stark_wang
我知道,你的代码,运行起来就是这样的,在计算属性里面获取,购物车列表,这个列表是通过异步加载的,所以会报错,怎么改善呢?你看看这个课程的购物车列表的代码,会报这个错误。
2017-10-27
共1条回复

Vue2.6+Node.js+MongoDB 全栈打造商城系统

课程全面升级,Vue2.6+Koa2,从前端入门全栈,让你的未来更宽广

2634 学习 · 924 问题

查看课程