多层数组嵌套 赋值问题 以及强制页面刷新

 

let data =[
    {
    dtBetween: "1",
    dtResultOutput: Array(2),
    dtResultOutputRadio: "1",
    listResultOutput: [
            {
                authKey: "B_RPT_SQL_SUB_MENU_uid",
                code: "uid",
                docs: null,
                domainList: Array(1),
                flagOutput: false,
                name: "爱uid",
                option: null,
                queryConditionList: null,
                specEnum: "DIMENSION",
                type: "ID",
           }
    ],
    timingInput: true
   },
   {
   dtBetween: "2",
   dtResultOutput: Array(2),
   dtResultOutputRadio: "1",
   listResultOutput: [
           {
               authKey: "B_RPT_SQL_SUB_MENU_uid",
               code: "uid",
               docs: null,
               domainList: Array(1),
               flagOutput: false,
               name: "uid",
               option: null,
               queryConditionList: null,
               specEnum: "DIMENSION",
               type: "ID",
          }
   ],
   timingInput: true
  }
]

数组中的数据嵌套的还有数组  如果用循环this.data[0].listResultOutput[0]赋值
当改变dtBetween1中listResultOutput 中某个属性的数据  dtBetween2中listResultOutput 中某个属性的数据 也会跟着改变
我感觉是作用域的问题
可以进行拷贝后赋值

objeck.assigin({}, this.data[0].listResultOutput[0]) 改变作用域
this.data[0].listResultOutput[0] = objeck.assigin({}, this.data[0].listResultOutput[0])
此时再给里面属性赋值就不会有影响了
但是页面没有重新渲染 可以使用 this.$forceUpdate();  让界面强制进行渲染

你可能感兴趣的:(多层数组嵌套 赋值问题 以及强制页面刷新)