【发布时间】:2021-04-10 09:23:52
【问题描述】:
我正在尝试使用带有自定义表单输入的子组件并将这些值发送到父组件。但是,当我尝试将值存储在父组件的对象中时,当输入另一个输入值时,一个输入值会消失。让我展示一些代码:
子组件
<template>
<input
type="text"
@input="setField($event.target.value, 'title')"
/>
<wysiwyg-input
@change="(text) => setField(text, 'content')"
/>
</template>
<script>
export default {
methods: {
setField(value, field) {
this.$emit("input", {
title: field === "title" && value,
content: field === "content" && value,
});
},
},
}
</script>
父组件
<template>
<FormFields v-model="blogPost" />
</template>
<script>
export default {
data() {
return {
blogPost: {},
};
},
watch: {
blogPost(val) {
console.log(val);
},
},
};
</script>
在这里,当我尝试输入“内容”时,“标题”字段变为假。那么如何在子组件上设置条件,因为我可以将两个输入都发送到父组件?还是有其他想法来完成相同的任务?
代码沙盒链接: https://codesandbox.io/s/mystifying-benz-w8wgu?file=/src/App.vue
【问题讨论】:
标签: javascript vue.js vuejs2