찾다

 >  Q&A  >  본문

피니아에서 상태 객체를 관찰하는 것은 객체가 변경될 때 트리거되지 않습니다.

<p>피니아 상태에 관찰자를 배치하고 싶은 깊은 물체가 있습니다. </p> <pre class="brush:js;toolbar:false;">export const useProductStore = 정의스토어("제품", { 상태: () => 속성: {}, }), }); </pre> <p>객체 내부에 데이터가 있으면 다음과 같습니다.</p> <pre class="brush:json;toolbar:false;">속성: { 영어: { 0: { 키: "key1", 값: "값1" }, 1: { 키: "key2", 값: "값2" }, ... } } </pre> <p>이 개체에 관찰자를 배치하려고 하는데 값이 변경되면 관찰자가 실행되지 않습니다. 이 작업을 수행하려는 구성요소는 다음과 같습니다. </p> <pre class="brush:js;toolbar:false;"><스크립트 설정> "@/stores/ProductStore"에서 { useProductStore } 가져오기;; "pinia"에서 import { storeToRefs }를;; const productStore = useProductStore(); const { 속성 } = storeToRefs(productStore); watch(() => ({...속성}), (newValue, oldValue) => { console.log(oldValue); console.log(newValue); }, { 깊은: 참 }); </스크립트> </pre> <p>이것은 pinia 문서에서 직접 가져온 것이지만 상태를 변경하면 아무 일도 일어나지 않습니다. vue 개발 도구를 사용하면 상태 개체가 변경되는 것을 볼 수 있으므로 반응적이라는 것을 알 수 있습니다. 내가 놓친 게 무엇입니까? </p>
P粉002546490P粉002546490484일 전580

모든 응답(1)나는 대답할 것이다

  • P粉668113768

    P粉6681137682023-08-29 09:47:17

    storeToRefsref()s.

    를 생성합니다.

    당신은 이 예가 "pinia 문서에서 직접 나온 것"이라고 말했지만, ref 。如果您这样做了,那么这是一个错误,应该通过在 piniaref가 pinia 문서 어디에나 퍼져 있다는 것을 발견했을 것 같지 않습니다. 이렇게 하면 이는 버그이므로

    pinia 저장소에 문제를 제기하여 posva에 지적해야 합니다.

    직접 시청하여 참고하실 수 있습니다:

    으아악 .value...또는 화살표 기능을 사용하여 .값1

    을 확인할 수 있습니다.

    으아악 newValoldVal newVal 및 oldVal 매개변수는 proxy 2입니다. 대상에 액세스하려면

    toRaw

    를 사용하세요. 작업 시연


    .

    p> 1

    - 다음과 같이 더 좁은 관찰자를 허용합니다. 으아악 2ref() “该对象是与 reactive() - 개체를 ref() "에 넣으면 개체는 reactive()"에 깊이 반응합니다(

    세부정보🎜 참조). 🎜Reactive Proxy와 Raw Proxy🎜도 읽어보세요.🎜

    회신하다
    0
  • 취소회신하다