programing

Vue __ob_ 속성이 개체에 있고 json 구문 분석 오류를 생성합니다.

sourcetip 2022. 7. 9. 10:06
반응형

Vue __ob_ 속성이 개체에 있고 json 구문 분석 오류를 생성합니다.

Nuxt/Vue/Vuex 앱에 문제가 있어__ob__관찰할 수 있는 특성은 침묵하기보다는 실제로 내 물체에 존재한다.

{lastname: "sfgsfdgsdfgs", __ob__: Observer}

아래 스크린샷:

여기에 이미지 설명 입력

내 길이Object.keys는 2이므로 API 콜에 전달되어 JSON 해석 오류가 발생합니다.

오브젝트의 필드 중 하나가 갱신되었는지, 갱신된 필드 및 값을 사용하여 오브젝트를 작성하는지 여부를 비교하기 위해 전송 작업을 수행합니다.API에 대한 패치 요청을 실행하기 위한 것입니다.

이 코드 중 일부는 이전 개발자에 의해 작성되었습니다.양식 필드는 직접 상태에 바인딩됩니다.

이 있습니다.contact객체, 즉 계산된 속성입니다.

computed: {
    ...mapState({
        contact(state) {
            return state.contact;
        },

나는 가지고 있다.origContact내 재산data()소유물,

data() {
    return {
      origContact: null,

마운트에서 계산 속성의 딥 클론으로서 설정되어 있다.contact,

mounted() {
      this.origContact = clonedeep(this.contact)

이것은 를 사용하고 있습니다.clonedeeploadash에서 라이브러리import clonedeep from 'lodash.clonedeep'

제출 시 아래 내용을 실행하고 있습니다.

getPatchFields(newObj, oldObj) {
        let patchObj = {}
        let properties = Object.getOwnPropertyNames(newObj)

        for (let i = 0; i < properties.length; i++) {
            let propName = properties[i]

            if (newObj[propName] !== oldObj[propName]) {
                patchObj[propName] = newObj[propName]
            }
        }
        return patchObj
    },
    async submitHandler() {
        try {
            let changedContactFields = this.getPatchFields(this.contact, this.origContact)
            console.log('TCL: submitHandler -> changedContactFields', changedContactFields)

changedContactFieldsobject가 있는 곳은__ob__하드 자산으로 표시됩니다.

이 문제를 경험한 사람이 있습니까?
물론 새 개체를 만들 수 있지만__ob__하지만 그게 거기 있다는 게 짜증나

어떤 도움이라도 주시면 감사하겠습니다!

언급URL : https://stackoverflow.com/questions/54564507/vue-ob-property-is-in-object-and-creating-json-parsing-error

반응형