简体   繁体   English

Vue.js中的对象不是可扩展错误

[英]object is not extensible error in vuejs

I want to update promo object with new field called colspan. 我想用名为colspan的新字段更新促销对象。 But my bad luck that getting 但是我的运气不好

Error: 错误:

uncaught (in promise) TypeError: Cannot add property colspan, object is not extensible at eval (eval at ( http://localhost:8080/app.js:3160:1 ), :71:32) at Array.forEach (native) at eval (eval at ( http://localhost:8080/app.js:3160:1 ), :66:35) at Array.forEach (native) at eval (eval at ( http://localhost:8080/app.js:3160:1 ), :64:47) at Array.forEach (native) at eval (eval at ( http://localhost:8080/app.js:3160:1 ), :62:23) at Promise () at F (eval at ( http://localhost:8080/app.js:865:1 ), :35:28) at Object.modifyData (eval at ( http://localhost:8080/app.js:3160:1 ), :48:12) 未捕获(承诺)TypeError:无法添加属性colspan,对象在Array.forEach(本机)处的eval(eval在( http:// localhost:8080 / app.js:3160:1 ),:71:32)处不可扩展)在eval(eval在( http:// localhost:8080 / app.js:3160:1 ),:66:35)在Array.forEach(本机)在eval(在( http:// localhost:8080 / app.js:3160:1 )::64:47)在val的Array.forEach(本地)(在( http:// localhost:8080 / app.js:3160:1 ),:62:23的eval) Promise()位于F(eval位于( http:// localhost:8080 / app.js:865:1 )::35:28)位于Object.modifyData(eval位于( http:// localhost:8080 / app.js :3160:1,:48:12

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]
            // // }
            // }
          })
        })

Please help me how to solve this. 请帮我解决这个问题。

The object promo has had extensibility turned off via Object.preventExtensions (or seal or freeze ). 目的promo已扩展通过关闭Object.preventExtensions (或sealfreeze )。 That means you cannot add new properties to it. 这意味着您不能向其添加新属性。 Instead, you can make a new copy of it with new properties. 相反,您可以使用新属性为其制作新副本。 A convenient way to do this is with Object.assign . 一种方便的方法是使用Object.assign

let tmpPromo = Object.assign({colspan: 0}, promo);

This starts with the anonymous object that defines colspan , copies properties from promo into it, and then returns the object (which we assign to tmpPromo ). 这从定义colspan的匿名对象开始,将promo属性复制到其中,然后返回该对象(我们将其分配给tmpPromo )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为对象数组创建新属性时,对象不可扩展错误 - Object is not extensible error when creating new attribute for array of objects React Error(TypeError):无法添加属性上下文,对象不可扩展 - React Error (TypeError): Can't add property context, object is not extensible 尝试在地图函数中添加字段时出现“对象不可扩展”错误 - "object is not extensible" error trying to add field in map function 如何使不可扩展的对象可扩展? - How to Make a non Extensible Object to extensible? 我无法使用 push() 方法更新作为数组的 object 属性,我收到 Typescipt 错误,指出 object 不可扩展 - I cannot update object property which is an array using push()method , I get Typescipt error that object is not extensible 如何在React-VR中使用Animated with Shape原语(例如Box)? 错误:“无法添加_tracking属性,对象不可扩展” - How to use Animated with Shape primitives such as Box in React-VR? Error: “Cannot add property _tracking, object is not extensible” 浏览器错误显示“无法添加属性*,对象不可扩展”-即使属性确实存在于类定义中 - Browser error says “Cannot add property *, object is not extensible” - Even though property does exist in the class definition 代码在 codeSandbox 中运行良好,但在 IDE 中显示错误为“无法定义属性”电子邮件“:Object 不可扩展” - The code is working fine in codeSandbox, But showing error while doing in the IDE as “can't define property ”email“: Object is not extensible” React:无法添加属性“X”,对象不可扩展 - React : cannot add property 'X', object is not extensible 无法添加属性_tracking,对象不可扩展 - Can't add property _tracking, object is not extensible
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM