vue对组件以数组方式赋值的问题
Posted suruozhong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue对组件以数组方式赋值的问题相关的知识,希望对你有一定的参考价值。
当从后台直接调接口返回数据
直接将数组array赋值给定义的变量,会导致组件无法更改其它值,例如多选框,多选下拉框,会导致无法选中其它的值,也无法取消当前已赋值的选中项
data() {
return {
infoForm:{
array: []
}
}
},
//调接口赋值
getApi(){
get().then(res=>{
//返回的数据,info里面包含array字段
this.infoForm = res.info
})
}
以上代码将会出现问题,页面加载的时候我们已经对infoform里面的array初始化一次了,数组结构已定义,后面直接将数组改变,导致组件无法读取
改变方式
data() {
return {
infoForm:{
array: []
}
}
},
//调接口赋值
getApi(){
get().then(res=>{
//定义变量
let info = res.info
//初始化数组
info.array = []
//将info拷贝到infoForm
this.infoForm = Object.assign({},this.info)
//将array的值加入infoForm的array
info.array.forEach(item =>{
_this.infoForm.array.push(
item
)
})
})
}
以上是关于vue对组件以数组方式赋值的问题的主要内容,如果未能解决你的问题,请参考以下文章
vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte
vue 父组件传数组或对象给子组件时 子组件修改值父组件也会做相应修改