Сравнение свойства объекта со строкой не удается в Vue - PullRequest
0 голосов
/ 08 октября 2019

Вывод: это была опечатка.

Я пробую что-то, что кажется простым, но я думаю, что упускаю что-то фундаментальное для Vue. У меня есть идентификатор и объект с дочерним свойством, которое содержит объект с этим идентификатором. Когда я перебираю свойства объекта для сравнения идентификатора, это ложь. Когда я записываю значения, которые сравнивались в операторе else после сравнения, они кажутся идентичными в журнале консоли.

Что бы я ни пытался сделать, я продолжаю попадать в строку "неверный пакет". Консоль показывает мне, что свойство объекта есть и что идентификатор объекта в этом свойстве правильный. Это выглядит так:

bad package c5186ae5-1558-490b-a9d2-5fc19c0a736d !== c5186ae5-1588-490b-a9d2-5fc19c0a736d

Я подозреваю, что это как-то связано с наблюдаемыми в Vue, даже если в журнале ничего не отображается как наблюдаемое.

Как правильно делать то, что я пытаюсь сделать?

// newVal = '29e51254-a88a-4309-92bc-ad1d0cda1427'
collectionIdForVerification (newVal) {
         const parcelId = this.$store.state.parcels.collectionIdForVerification
         // this print the object, it looks good
         console.log('Parcels are ', this.requestedParcelsForCollection)
         console.log('local parcels are ', this.local.parcels)
         const loParcOb = JSON.parse(JSON.stringify(this.local.parcels))
         console.log('local parcels are ', loParcOb)
         console.log('does the parcel for ', newVal, ' exist? ', this.local.parcels[newVal])
         if (newVal) {
           const packages = loParcOb
           console.log('lets check ', packages, ' for ', parcelId)
           const rightPackage = loParcOb[parcelId]
           console.log('right package is ', rightPackage)
           for (let x in loParcOb) {
             let ob = loParcOb[x]
             console.log('object: ', ob)
             if (ob.id.toString() === parcelId) {
               console.log('good pagage ', ob)
             } else {
               // this shows me that the two compared things are equal
               console.log('bad package ', ob.id.toString(), ' !== ', parcelId)
             }
           }
         }
       }

Объект:

// object
{
displayImage: "https://static.xxxx.co/couriers/dhl/dhl_detail.png"
expiration: 1573486971237
id: "29e51254-a88a-4309-92bc-ad1d0cda1427"
name: "MacBook from YYYY"
passcode: ""
recipient: {xxxId: "0cbf8068-a286-49c5-bdf7-7509ac953b5f", yyyId: "b925b763-992e-4ad3-98b1-ba8fba2ef37e"}
sender: {xxxId: "9cad32d0-6724-414b-a686-a8e133db2225", yyyId: "997eeab8-a698-4027-93d3-43ca5d6ee121"}
slotHeight: 2
startingSlot: 37
status: "IN_STATION"
trackingNumber: "A123456002"
}

1 Ответ

1 голос
/ 08 октября 2019

Идентификаторы разные.

Один содержит 1558. Другой имеет 1588.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...