Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象不可扩展vuejs中出现错误_Javascript_Vue.js_Vuex - Fatal编程技术网

Javascript 对象不可扩展vuejs中出现错误

Javascript 对象不可扩展vuejs中出现错误,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我想用名为colspan的新字段更新promo对象。但我的坏运气是 错误: 未捕获(承诺中)TypeError:无法添加属性colspan,对象不可扩展 评估时(评估时(),:71:32) at Array.forEach(本机) 评估时(评估时(),:66:35) at Array.forEach(本机) 评估时(评估时(),:64:47) at Array.forEach(本机) 评估时(评估时(),:62:23) 允诺 在F时(评估时间(),:35:28) 在Object.modifyDa

我想用名为colspan的新字段更新promo对象。但我的坏运气是

错误:

未捕获(承诺中)TypeError:无法添加属性colspan,对象不可扩展 评估时(评估时(),:71:32) at Array.forEach(本机) 评估时(评估时(),:66:35) at Array.forEach(本机) 评估时(评估时(),:64:47) at Array.forEach(本机) 评估时(评估时(),:62:23) 允诺 在F时(评估时间(),:35:28) 在Object.modifyData(eval at(),:48:12)

departmentId.forEach(departmentId=>{
结果[部门ID]=[]
departmentWiseResults[departmentId].forEach((促销,索引)=>{
让tmpPromo=promo
dateRanges.dateRanges.forEach(范围=>{
让startedDateWeek=时刻(promo.startDate.week()
让endDateWeek=时刻(promo.endDate.week()
让startedYear=时刻(promo.startDate.year())
让endedYear=时刻(promo.endDate).year()
tmpPromo.colspan=0
如果(range.startYear===startedYear&&range.endYear===endedear&&range.weekNumber=startedDateWeek){
tmpPromo.colspan++
}
departmentWiseResults[departmentId]。拼接(索引,1,tmpPromo)
log('started:'、startedDateWeek、endDateWeek、startedYear、endedYear、promo、tmpPromo、departmentWiseResults[departmentId])
})
log('promo在添加colspna之后:',promo)
//if(isInRange(范围、促销)){
//console.log('for range',range.startDate,range.endDate)
//console.log('for promo',promo.id)
//console.log(
//"diff is",,
//findWeekspan(范围,dateRanges.dateRanges[dateRanges.dateRanges.length-1],促销)
//   )
////如果(!promo.used){
////promo.used=true
////结果[部门ID]
// // }
// }
})
})

请帮助我解决此问题。

对象
promo
已通过(或)关闭可扩展性。这意味着您不能向其添加新属性。相反,您可以使用新属性创建它的新副本。一个方便的方法是使用


这从定义
colspan
的匿名对象开始,将
promo
中的属性复制到其中,然后返回该对象(我们将其分配给
tmpPromo
)。

让tmpPromo=object.assign({colspan:0},promo)?非常感谢@RoyJ
departmentIds.forEach(departmentId => {
          results[departmentId] = []
          departmentWiseResults[departmentId].forEach((promo, index) => {
            let tmpPromo = promo
            dateRanges.dateRanges.forEach(range => {
              let startedDateWeek = moment(promo.startDate).week()
              let endDateWeek = moment(promo.endDate).week()
              let startedYear = moment(promo.startDate).year()
              let endedYear = moment(promo.endDate).year()
              tmpPromo.colspan = 0
              if (range.startYear === startedYear && range.endYear === endedYear && range.weekNumber <= endDateWeek && range.weekNumber >= startedDateWeek) {
                tmpPromo.colspan++
              }
              departmentWiseResults[departmentId].splice(index, 1, tmpPromo)
              console.log('stareted:', startedDateWeek, endDateWeek, startedYear, endedYear, promo, tmpPromo, departmentWiseResults[departmentId])
            })
            console.log('promo after adding colspna:', promo)
            // if (isInRange(range, promo)) {
            //   console.log('for range', range.startDate, range.endDate)
            //   console.log('for promo', promo.id)
            //   console.log(
            //     'diff is',
            //     findWeekspan(range, dateRanges.dateRanges[dateRanges.dateRanges.length - 1], promo)
            //   )
            // // if (!promo.used) {
            // //   promo.used = true
            // //   results[departmentId]
            // // }
            // }
          })
        })
let tmpPromo = Object.assign({colspan: 0}, promo);