피니아에서 상태 객체를 관찰하는 것은 객체가 변경될 때 트리거되지 않습니다.
P粉002546490
2023-08-28 12:14:33
<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>
를 생성합니다.storeToRefs
는ref()代码>
s.당신은 이 예가 "pinia 문서에서 직접 나온 것"이라고 말했지만,
pinia 저장소에 문제를 제기하여 posva에 지적해야 합니다.ref
。如果您这样做了,那么这是一个错误,应该通过在pinia
ref가 pinia 문서 어디에나 퍼져 있다는 것을 발견했을 것 같지 않습니다. 이렇게 하면 이는 버그이므로으아악
을 확인할 수 있습니다..value
...또는 화살표 기능을 사용하여 .값1으아악
toRawnewVal
和oldVal
newVal 및 oldVal 매개변수는 proxy 2입니다. 대상에 액세스하려면를 사용하세요. 작업 시연
.
p> 1
- 다음과 같이 더 좁은 관찰자를 허용합니다. 으아악 2
세부정보🎜 참조). 🎜Reactive Proxy와 Raw Proxy🎜도 읽어보세요.🎜ref()
“该对象是与reactive()
- 개체를 ref() "에 넣으면 개체는 reactive()"에 깊이 반응합니다(