- 35
- 0
vue组件通信,运行总是报错[Vue warn]: Error in event handler for "onballdrop": "TypeError: Cannot read property '0' of undefined"
学习模块化开发,没有使用vuex和vue-bus,这个地方卡了很久,求大神指教
main
new Vue({
data: {
eventBus: new Vue()
},
router: router.routers,
components: { App },
render: rout => rout(App)
}).$mount('#app');
carcontrol组件
<div class="add icon-add_circle" @click='addCart'></div>
methods: {
addCart (event) {
if (!event._constructed) {
return
}
if (!this.food.count) {
Vue.set(this.food, 'count', 1);
} else {
this.food.count++;
}
this.$root.eventBus.$emit('onballdrop', event.target);
// console.log(this.$root.eventBus);
}
}
shopcar组件
<transition-group
name='drop'
@before-enter='beforeEnter'
@enter='enter'
@after-enter='afterEnter'>
<div class='ball' v-for='(ball, ballIdx) in balls'
v-show='ball.show' :key='ballIdx'></div>
</transition-group>
data () {
return {
balls: [{
show: false
},{
show: false
},{
show: false
},{
show: false
},{
show: false
}],
dropBalls: [],
}
},
created() {
this.$root.eventBus.$on('onballdrop', this.dropped)
},
methods: {
dropped(ev) {
console.log(ev);
for(let i = 0; i < this.balls.length; i++) {
let ball = this.ball[i];
if (!ball.show) {
ball.show = true;
ball.el = ev;
}
this.dropBalls.push(ball);
return;
}
} 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
川长思鸟来 普通会员 1楼
这个错误消息的意思是,你在尝试访问一个undefined对象的"0"属性,这在JavaScript中是不允许的。
在Vue中,当你触发一个事件,Vue将尝试获取这个事件的源头对象(通常是一个Vue实例)的属性。如果源头对象是undefined,那么尝试访问它的"0"属性就会引发这个错误。
要解决这个问题,你可以使用Vue的
get方法,它会返回一个可选的对象,如果你提供了一个函数作为get方法的参数,那么这个函数将会被调用,而get方法会返回一个对象的属性。例如,如果你有一个名为
items的数组,你可以这样使用get方法来获取这个数组的第0个元素:javascript items[0] = "Hello";如果你使用
get方法来获取items数组的"0"属性,你将会得到一个错误:javascript console.log(items[0]); // TypeError: Cannot read property '0' of undefined在这个例子中,
items数组的"0"属性是undefined,所以尝试访问它将会引发错误。为了避免这个问题,你可以确保你的事件源头对象是可选的,或者提供一个函数来处理这个错误。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
