IT이야기

vuejs에서 개체가 확장 가능하지 않음 오류입니다.

cyworld 2022. 7. 23. 10:05
반응형

vuejs에서 개체가 확장 가능하지 않음 오류입니다.

프로모션 개체를 colspan이라는 새 필드로 업데이트하고 싶습니다.하지만 내가 운이 나빴던 건

오류:

(약속적으로) 잡히지 않은TypeError: 속성 colspan을 추가할 수 없습니다. Array.ForEach(네이티브)의 eval(http://localhost:8080/app.js:3160:1), :71:32)에서는 개체를 확장할 수 없습니다.Array에서는 각 (http://localhost:80/app.js:3160:1), :66:35에서 평가판)에서 평가됩니다.(http://localhost:8080/app.js:3160:1), :62:23)에 있는 Promise()에 있는 Object.modifyData(http://localhost:8080/app.js:865:1,:35:28)에 있습니다.

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

이 문제를 해결하는 방법을 도와주세요.

오브젝트promo(또는 )를 통해 확장성이 꺼졌습니다.즉, 새 속성을 추가할 수 없습니다.대신 새 속성을 사용하여 새 복사본을 만들 수 있습니다.이 작업을 수행하는 편리한 방법은 을 사용하는 것입니다.

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

이 작업은 다음을 정의하는 익명 개체에서 시작됩니다.colspan, 속성을 복사합니다.promo오브젝트를 반환한다(이 오브젝트를 할당한다).tmpPromo).

언급URL : https://stackoverflow.com/questions/43917561/object-is-not-extensible-error-in-vuejs

반응형