【发布时间】:2019-03-13 08:24:45
【问题描述】:
我正在尝试将数据从道具复制到本地 data() 值以进行编辑,但是当我进行更改时它会继续编辑。
export default {
props: {
item: {
type: Object,
required: true
}
},
data () {
return {
form: { ...this.item }
}
}
}
然后我将本地表单数据的 Translations 属性传递给另一个组件,该组件处理编辑
<tab
v-for="translation in form.translations"
:key="translation.locale.value"
:name="translation.locale.value">
<form-group :fields="translation" />
</tab>
在我的 FormGroup 组件中,我收到传递的字段,将它们过滤掉,这样隐藏的就不会出现,然后编辑它们。
现在,当我进行编辑时,我在 Vue 检查器中看到我的父组件中的原始项目也在被编辑。
<script>
export default {
props: {
fields: {
type: Object,
required: true
}
},
computed: {
filtered () {
return Object.keys(this.fields)
.filter(field => this.fields[field].type !== 'hidden')
.reduce((res, field) => Object.assign(res, { [field]: this.fields[field] }), {})
}
}
}
</script>
【问题讨论】:
标签: javascript vue.js