programing

Vuej에서 소품 변경 보기

goodsources 2022. 8. 10. 22:26
반응형

Vuej에서 소품 변경 보기

어린이용 컴포넌트의 소품으로 시계를 사용하고 싶은데 작동하지 않습니다.

제 코드는 다음과 같습니다.

props: {
    searchStore: {
        type: Object
    }
},
watch: {
    searchStore(newValue) {
        alert('yolo')
        console.log(newValue)
    }

그리고 불행하게도 그것은 작동하지 않는다.

게시물을 보고 모든 것을 시도했지만 아무 것도 작동하지 않았습니다: VueJs 2.0 - 'props'의 변화를 듣는 방법

Vue Devtools에 내 소품을 확인해보니 변하고 있어.

커뮤니티에 미리 감사드립니다!

그 코드에 근거하면, 동작할 수 있기 때문에, 문제는 다른 장소에 있을 가능성이 있습니다.코드를 더 올릴 수 있나요?

즉시 실행되도록 하려면immediate. 구문은 다음과 같습니다.

  watch: {
    searchStore: {
      immediate: true,
      deep: true,
      handler(newValue, oldValue) {

      }
    }
  },

deep: true설정은 오브젝트 내의 변경을 상세하게 감시합니다.

상위 구성 요소에서 이 개체의 일부를 업데이트할 때 Vue를 사용해야 합니다.$set기능.

this.$set(this.searchStore, 'myKey', {price: 12.22});

자세한 것은, https://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats 를 참조해 주세요.

'search Store'가 바뀌지 않았을까요?

개체이므로 vue는 전달될 개체의 새 참조를 감시합니다.

의미(감시를 트리거하지 않음):

roorSearchStore.a= newVal

참조가 변경되지 않았기 때문에 워치를 트리거하지 않습니다.

Daniel의 말처럼 자세히 관찰하거나 Or do Object.assign을 다음과 같이 수행할 수 있습니다.

rootSearchStore = Object.assign({},roorSearchStore,{a:newVal})입니다.

또는 root Search Store 변경 타임스탬프를 확인합니다.

언급URL : https://stackoverflow.com/questions/51292803/watch-props-change-on-vuejs

반응형