【发布时间】:2017-01-04 06:08:21
【问题描述】:
当单击其子组件之一中的按钮时,我正在尝试获取在父组件上执行的方法。我在 Webpack 中使用单个文件组件。下面是子组件的代码:
<template>
<button v-on:click="add">Click</button>
</template>
<script>
export default {
methods: {
add: () => {
console.log('foo')
this.$dispatch('addClick')
}
}
}
</script>
以及父代的代码:
<template>
<div id="app">
<count :total="total"></count>
<click></click>
</div>
</template>
<script>
import count from './components/count.vue'
import click from './components/click.vue'
export default {
components: {
count,
click
},
data: () => {
return {
total: 0
}
},
methods: {
addToTotal: () => {
console.log('bar')
this.total += 1
}
},
events: {
addClick: 'addToTotal'
}
}
</script>
count 组件只是一个显示total 变量的 h1 元素。当我单击按钮时,“foo”会记录到控制台,但“bar”不会,总数也不会改变。关于我做错了什么的任何想法?提前致谢!
【问题讨论】:
-
您正在使用 lambda 表示法,这可能会弄乱您的
this。请改用function。
标签: javascript vue.js vue-component