source

Vue.js2 - 어레이에 __ob_: 옵서버가 포함되어 있습니다.

factcode 2022. 8. 28. 09:32
반응형

Vue.js2 - 어레이에 __ob_: 옵서버가 포함되어 있습니다.

(아마도) vue.js에 관한 초보자의 질문입니다.웹 소켓에서 받은 CanvasJS 라이브러리를 사용하여 데이터를 표시하려고 합니다.vue 컴포넌트를 사용하기 전까지는 데이터 작업이 정상적으로 진행됩니다.확실히 하기 위해서:

export default {
  data() {
    return {
      cartesian: null,
      ws: null
    }
  },

  methods: {

    fillData(res) {
     var data = JSON.parse(res.data)

     var buffer = data.mdi
     console.log(buffer)

     this.cartesian = data.mdi
     console.log(this.cartesian)
    }

  },

  mounted() {
    this.ws = new WebSocket('ws://localhost:1111')
    this.ws.onmessage = this.fillData
  }
}

회선console.log(data.mdi)출력{0: Array(256), 1: Array(256), 2: Array(256), 3: Array(256)}이것이 바로 제가 기대했던 것과 Canvas JS에서 작동하는 것입니다.
회선console.log(this.cartesian)단, 출력{__ob__: Observer}제가 알기로는 vue.js의 반응성과 관련이 있습니다.유감스럽게도, 저는 의 내용을 사용할 수 없습니다.this.cartesian데이터가 표시되지 않으므로 캔버스JS를 사용합니다.
데이터를 표시하는 방법은 다른 방법이 없기 때문에this.cartesian여기서 내가 뭘 잘못하고 있는지 또는 어떻게 데이터에 접근할 수 있는지에 대해 도움을 받고 싶습니다.this.cartesian제 브라우저에서 검사하면 알 수 있듯이요.

왜냐면cartesian는 컴포넌트 데이터의 일부이며, 게터 및 세터를 추가하면 반응합니다.

이 의도된 기능을 회피하기 위해 몇 가지 방법을 사용할 수 있지만 ES6의 객체 확산 파괴 기능을 사용하는 경우에는 일반적으로 필요하지 않습니다.

let cartesianObject = {...this.cartesian};
console.log(cartesianObject);

유사한 문제에 직면한 모든 사용자의 경우:{__ob__: Observer}CanvasJS 라이브러리를 방해하지 않았습니다.내가 쓸 수도 있었는데this.cartesian문제없이.차트를 데이터로 채우는 올바른 방법을 찾지 못했을 뿐입니다.
console.log는 여기서 오해를 불러일으킬 수 있지만 어떤 경우에도 데이터를 사용할 수 있어야 합니다.{__ob__: Observer}플레인 js에서 할 수 있는 것과 같은 방법으로요.

언급URL : https://stackoverflow.com/questions/50217838/vue-js2-array-contains-ob-observer

반응형