【发布时间】:2021-12-27 16:26:09
【问题描述】:
我有一个调用 API 的按钮组件,我想将返回的响应推送到父级,在那里它将成为“translatedText”道具,但是,我相信我错误地使用了 $emit,因为到错误:`Uncaught(in promise)TypeError:无法读取未定义的属性(读取'$emit')。如何最好地捕获响应数据并将其传递给我的父道具,并且在这种情况下使用 $emit 最好?
TranslationButton.vue
<template>
<b-button type="is-primary" @click="loadTranslations()">Übersetzen</b-button>
</template>
<script>
export default {
name: "TranslationButton",
props: {
translatedText: ''
},
methods: {
loadTranslations() {
fetch('http://localhost:3000/ccenter/cc_apis')
.then(function(response) {
return response.text();
})
.then(function(data) {
console.log(data);
this.$emit('translatedText', this.data);
console.log(data)
})
},
},
};
</script>
父组件道具:
props: {
data: Array,
translatedText: '',
showAttachments: {
type: Boolean,
default: false,
}
},
父组件中如何调用子组件:
<translation-button @translatedText="loadTranslations()" />
【问题讨论】:
标签: vue.js vuejs2 vue-component