【发布时间】:2019-12-17 08:05:53
【问题描述】:
在我的 Nuxt.js 应用程序中,我尝试从子组件向父组件发出一个值。
父组件是:pages/index.vue:
<template>
<div>
<custom-input v-model="value" />
<v-btn @click="showValue">
Ok
</v-btn>
</div>
</template>
<script>
import CustomInput from '@/components/CustomInput.vue'
export default {
components: { CustomInput },
data () {
return {
value: 'hello'
}
},
watch: {
value (val) {
console.log('value' + val)
}
},
methods: {
showValue () {
console.log('value is: ' + this.value)
}
}
}
</script>
子是:component/CustomInput.vue:
<template>
<v-text-field
v-bind:value="value"
v-on:input="$emit('input', value)"
/>
</template>
<script>
export default {
name: 'CustomInput',
props: {
value: {
type: String,
required: true
}
},
watch: {
value () {
this.$emit('input', this.value)
}
}
}
</script>
当我单击确定按钮时,我没有得到更新的值。我错过了什么?
我按照官方文档here
相关简单demo 托管在 Github 上。
【问题讨论】:
-
您的代码中有许多其他控制台登录。您认为哪些日志符合预期?
-
只是为了调试,我把它们去掉,只留下相关的
-
但是您看到控制台记录了
value上的watch吗? -
我需要的是:点击按钮,我想控制台记录我输入的值。所有其他控制台日志都只是为了调试
标签: javascript vue.js nuxt.js